Некоторые отличия команд CREATE TABLE AS и SELECT INTO в PostgreSQL:
- Цель использования:
- CREATE TABLE AS создаёт таблицу и заполняет её данными, вычисленными с помощью команды SELECT. 23 Новая таблица не будет отслеживать последующие изменения в исходных таблицах запроса. 3
- SELECT INTO позволяет создать новую таблицу напрямую из результатов запроса. 1 Команда подходит для дублирования или организации данных из существующей таблицы в новую для дальнейшего анализа. 1 При этом данные не возвращаются клиенту. 25
- Возможность указания свойств:
- CREATE TABLE AS позволяет переопределить имена столбцов, указав явный список новых имён столбцов. 3 Также с помощью этой команды можно указать метод доступа к таблице или табличное пространство. 35
- SELECT INTO не даёт возможности определить такие свойства. 5 Для новой таблицы выбирается метод доступа по умолчанию. 5
Кроме того, CREATE TABLE AS считается предпочтительным синтаксисом, так как он меньше всего подвержен путанице с другими использованиями синтаксиса SELECT INTO. 3
Таким образом, CREATE TABLE AS предлагает набор функций, который является надмножеством функциональности SELECT INTO. 3