Brug select ... as ...
at oprette en tabel aldrig kopieringsbegrænsninger. Hvis du ønsker, at den nye tabel skal arve begrænsninger fra de originale tabeller, skal du oprette de nye begrænsninger manuelt.
Som @Davek påpeger, not null
begrænsninger vil blive kopieret fra en enkelt tabel select ... as ...
. Jeg forestiller mig, at det er, fordi de både er kolonneattributter og begrænsninger. Men når først kolonnen har mere end én kilde, er det rimeligt, at Oracle ikke ville forsøge at anvende denne begrænsning.
Som svar på opfølgende spørgsmål "vil det være muligt at give tableC
de samme begrænsninger enten fra tableA
eller tableB
, efter en CTA'er?":
Selvfølgelig er det muligt, men der er ingen enkelt kommando til at gøre det. Du kunne skrive en procedure, der brugte dynamisk SQL til at kopiere begrænsningerne. Medmindre du søger at automatisere denne adfærd, vil det dog generelt være nemmere at udtrække DDL ved hjælp af en IDE og ændre tabelnavnet.