Usando select ... as ...
per creare una tabella mai copia vincoli. Se vuoi che la nuova tabella erediti i vincoli dalle tabelle originali, devi creare i nuovi vincoli manualmente.
Come sottolinea @Davek, not null
i vincoli verranno copiati da una singola tabella select ... as ...
. Immagino che sia perché sono sia attributi che vincoli di colonna. Tuttavia, una volta che la colonna ha più di una fonte, è ragionevole che Oracle non tenti di applicare tale vincolo.
In risposta alla domanda di follow-up "sarebbe possibile fornire tableC
gli stessi vincoli da tableA
o tableB
, dopo un CTA?":
Ovviamente è possibile, ma non esiste un unico comando per farlo. Potresti scrivere una procedura che utilizzasse SQL dinamico per copiare i vincoli. Tuttavia, a meno che tu non stia cercando di automatizzare questo comportamento, generalmente sarà più semplice estrarre il DDL utilizzando un IDE e cambiare il nome della tabella.