PostgreSQL поддерживает, CREATE TABLE AS
и SELECT INTO
когда я использую оба?
CREATE TABLE AS
- определить новую таблицу из результатов запроса
CREATE TABLE AS
создает таблицу и заполняет ее данными, вычисленными поSELECT
команде. Столбцы таблицы имеют имена и типы данных, связанные с выходными столбцамиSELECT
(за исключением того, что вы можете переопределить имена столбцов, дав явный список новых имен столбцов).
CREATE TABLE AS
имеет некоторое сходство с созданием представления, но на самом деле оно совершенно иное: оно создает новую таблицу и оценивает запрос только один раз, чтобы изначально заполнить новую таблицу. Новая таблица не будет отслеживать последующие изменения в исходных таблицах запроса. Напротив, представление переоценивает свое определяющееSELECT
утверждение всякий раз, когда его запрашивают.
А потом.
SELECT INTO
- определить новую таблицу из результатов запроса
SELECT INTO
создает новую таблицу и заполняет ее данными, вычисленными по запросу. Данные не возвращаются клиенту, как это обычно бываетSELECT
. Столбцы новой таблицы имеют имена и типы данных, связанные с выходными столбцамиSELECT
.