Menggunakan select ... as ...
untuk membuat tabel tidak pernah salinan kendala. Jika Anda ingin tabel baru mewarisi batasan dari tabel asli, Anda harus membuat batasan baru secara manual.
Seperti yang ditunjukkan @Davek, not null
batasan akan disalin dari satu tabel select ... as ...
. Saya membayangkan itu karena keduanya adalah atribut kolom dan batasan. Namun, begitu kolom memiliki lebih dari satu sumber, wajar jika Oracle tidak mencoba menerapkan batasan itu.
Menanggapi pertanyaan lanjutan "apakah mungkin memberikan tableC
batasan yang sama baik dari tableA
atau tableB
, setelah CTA?":
Tentu saja itu mungkin, tetapi tidak ada perintah tunggal untuk melakukannya. Anda bisa menulis prosedur yang menggunakan SQL dinamis untuk menyalin batasan. Namun, kecuali jika Anda ingin mengotomatiskan perilaku ini, biasanya akan lebih mudah untuk mengekstrak DDL menggunakan IDE dan mengubah nama tabel.