Използвайки select ... as ...
за създаване на таблица никога копира ограничения. Ако искате новата таблица да наследи ограничения от оригиналните таблици, трябва да създадете новите ограничения ръчно.
Както посочва @Davek, not null
ограниченията ще бъдат копирани от една таблица select ... as ...
. Предполагам, че това е така, защото те са и атрибути на колони, и ограничения. Въпреки това, след като колоната има повече от един източник, е разумно Oracle да не се опитва да приложи това ограничение.
В отговор на последващия въпрос „би ли било възможно да се даде tableC
същите ограничения или от tableA
или tableB
, след CTA?":
Разбира се, че е възможно, но няма една единствена команда, която да го направи. Можете да напишете процедура, която използва динамичен SQL за копиране на ограниченията. Въпреки това, освен ако не искате да автоматизирате това поведение, обикновено ще бъде по-лесно да извлечете DDL с помощта на IDE и да промените името на таблицата.