Jika Anda benar-benar yakin ingin menjatuhkan tabel meskipun direferensikan dalam kunci asing, Anda dapat memaksanya seperti ini:
drop table state cascade constraints;
Sintaks ini didefinisikan dalam Referensi Oracle SQL .
Perhatikan bahwa ini menjatuhkan hubungan kunci asing apa pun. Jadi, Anda perlu membuatnya kembali setelah Anda membangun kembali tabel (dan kunci utamanya). Biasanya ini tidak masalah karena kasus penggunaan yang paling umum adalah membuang dan membuat ulang skema di lingkungan Pengembangan atau CI.
Kita dapat menggunakan cascade constraints
untuk membuat skrip build kami lebih mudah dirawat. Ada dua alternatif:
- Lepaskan batasan kunci asing secara eksplisit sebelum menghapus tabel, baik dengan skrip atau dengan SQL dinamis.
- Urutkan pernyataan DROPTABLE sehingga tabel dependen di-zapped terlebih dahulu, bersama dengan kunci asingnya yang mengganggu. Cukup mudah untuk beberapa tabel, lebih menyakitkan dengan skema besar.