Mereka adalah yang terbaik dan paling efisien. Untuk kueri produksi, saya akan menggunakan 2
.
Satu-satunya cara lain yang dapat saya pikirkan adalah (IMO) hanya cocok untuk penghapusan data yang cepat dan kotor di lingkungan pengujian (menghindari kebutuhan untuk menganalisis urutan yang benar)
- Nonaktifkan semua FK, hapus data yang diinginkan, lalu aktifkan kembali FK. Ini tidak efisien karena harus diaktifkan kembali
WITH CHECK
untuk menghindari meninggalkan FK dalam keadaan tidak tepercaya yang berarti bahwa semua data yang disimpan perlu divalidasi ulang. - Daftar semua
DELETE
pernyataan pada tabel yang terpengaruh dalam urutan arbitrer dan jalankan batch sebanyak yang diperlukan hingga berhasil tanpa kesalahan FK.