Оператор
CREATE TABLE AS SELECT
в PostgreSQL не создает новую таблицу со столбцами с ограничением NOT NULL
исходной таблицы.
В моей таблице tab1 есть столбцы col1 и col2 без ненулевых ограничений.*
create table tab1 (col1 varchar(23) not null, col2 int not null)
и сейчас я создаю новую таблицу tab2 с определением и данными таблицы tab2, как показано ниже:
создать таблицуДля tab2 выберите col1, col2 из tab1
Но col1 и col2 из tab2 не имеют ограничения NOT NULL.Как получить точное состояние ограничения NOT NULL в столбцах новой таблицы с исходной таблицы?
Если есть какой-либо способ достичь этого, используйте выражение CREATE TABLE AS SELECT
, которое очень приветствуется.Оператор CREATE TABLE AS SELECT
в Oracle, DB2 и SELECT .. INTO
в SQLServer копирует NOT NULL CONSTRAINT вместе с данными.