Иллюстрированный самоучитель по PostgreSQL

Создание таблиц на базе существующих таблиц

Команда SELECT с секцией INTO TABLE создает новую таблицу, структура и содержимое которой определяются итоговым набором запроса. Синтаксис:

SELECT цели_выборки
INTO [ TABLE ] новая_таблица FROM старая_таблица

В этом варианте команда SELECT косвенно выполняет команду CREATE TABLE. Имена и типы полей, а также содержимое таблицы определяются параметрами итогового набора. Возвращаемое в ответ сообщение "SELECT" указывает на то, что команда была успешно выполнена, а в базе данных создана новая таблица.

В листинге 4.52 приведен пример создания таблицы stock_backup по данным таблицы stock.

Листинг 4.52. Создание таблицы на основе данных другой таблицы.

booktown=# SELECT * INTO
stock_backup booktown=# FROM stock;
SELECT

Таблица, указанная в секции INTO, не должна существовать, иначе происходит ошибка. В этом случает данные не сохраняются, а запрос завершается неудачей. Следует помнить, что ключевое слово TABLE является необязательным.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.