Самоучитель по SQL-сервер в Linux



CREATE TABLE AS

Создание новой таблицы по результатам выборки.

Синтаксис

CREATE TABLE таблица [ (поле [. ...] ) ]

AS выборка

Параметры

  • таблица. Имя создаваемой таблицы.
  • поле. Имя поля в создаваемой таблице; при перечислении нескольких полей их имена разделяются запятыми. Количество полей в таблице должно совпадать с количеством полей, возвращаемых в результате выборки.
  • выборка. Синтаксически правильная команда SELECT. Количество полей должно соответствовать количеству полей в необязательном списке, предшествующем секции AS.

Результаты

  • SELECT. Сообщение возвращается при успешном создании и вставке данных в таблицу.
  • ERROR. CREATE TABLE/AS SELECT has mismatched column count. Ошибка — количество полей в списке, заключенном в круглые скобки, отличается от количества полей, возвращаемых командой SELECT.

Описание

Команда CREATE TABLE AS создает таблицу по записям, входящим в итоговый набор, например по результатам запроса к таблице, существующей в базе данных. Типы и содержимое полей новой таблицы определяются параметрами команды SELECT.

В PostgreSQL 7.1.x при явном перечислении полей в круглых скобках не допускается использование символа * в команде SELECT.

Пример

Следующая команда создает резервную копию всего содержимого таблицы books и сохраняет ее в таблице book_backup.

booktown=# CREATE TABLE book_backup

booktown-# AS SELECT * FROM books;

SELECT