Использование select ... as ...
для создания таблицы never копии ограничений. Если вы хотите, чтобы новая таблица наследовала ограничения из исходных таблиц, вы должны создать новые ограничения вручную.
В @Davek указывает, not null
ограничения будут скопированы из одной таблицы select ... as ...
. Я думаю, это потому, что они оба атрибуты столбца и ограничения. Однако, как только столбец имеет более одного источника, разумно, что Oracle не попытается применить это ограничение.
В ответ на последующий вопрос о «не было бы возможным дать tableC
те же ограничения, либо из tableA
или tableB
после СТА?»:
Конечно, это возможно, но там нет одна команда для этого. Вы можете написать процедуру, использующую динамический SQL для копирования ограничений. Однако, если вы не пытаетесь автоматизировать это поведение, обычно проще извлечь DDL с помощью среды IDE и изменить имя таблицы.
Чтобы ответить на ваш вопрос без маски: вместо этого вы можете создать таблицу tableC как select column1, column2 из tableA', которая будет дублировать любые ограничения NOT NULL, а затем последует за вставкой из tableB. –