Создание таблиц на базе существующих таблиц
Команда 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 является необязательным.