Mit select ... as ...
um nie eine Tabelle zu erstellen Kopien Beschränkungen. Wenn Sie möchten, dass die neue Tabelle Einschränkungen von den ursprünglichen Tabellen erbt, müssen Sie die neuen Einschränkungen manuell erstellen.
Wie @Davek betont, not null
Einschränkungen werden aus einer einzelnen Tabelle kopiert select ... as ...
. Ich denke, das liegt daran, dass sie sowohl Spaltenattribute als auch Einschränkungen sind. Sobald die Spalte jedoch mehr als eine Quelle hat, ist es vernünftig, dass Oracle nicht versucht, diese Einschränkung anzuwenden.
Als Antwort auf die Folgefrage "Wäre es möglich, tableC
die gleichen Einschränkungen entweder von tableA
oder tableB
, nach einem CTA?":
Natürlich ist es möglich, aber es gibt keinen einzigen Befehl dafür. Sie könnten eine Prozedur schreiben, die dynamisches SQL verwendet, um die Einschränkungen zu kopieren. Sofern Sie dieses Verhalten jedoch nicht automatisieren möchten, ist es im Allgemeinen einfacher, die DDL mithilfe einer IDE zu extrahieren und den Tabellennamen zu ändern.