Kelakuan Lalai MySQL ON DELETE: Menjelaskan Pilihan
Memahami gelagat MySQL apabila memadamkan baris induk yang mempunyai hubungan kunci asing dalam jadual anak adalah penting untuk integriti data. Dokumentasi MySQL boleh menjadi agak samar-samar, yang membawa kepada kekeliruan mengenai tingkah laku lalai. Artikel ini bertujuan untuk memberikan penjelasan yang jelas tentang lima pilihan yang mungkin untuk klausa ON DELETE dan mewujudkan gelagat lalai apabila ia ditinggalkan.
TIADA TINDAKAN dan TERHAD: Pencegahan Melanggar Kekangan FK
Gelagat lalai MySQL ON DELETE ialah TIADA TINDAKAN (atau TERHAD). Kedua-dua pilihan berfungsi secara sama, berkesan menghalang sebarang perubahan pangkalan data yang akan melanggar kekangan utama asing. Dalam erti kata lain, memadamkan baris induk dengan baris anak yang berkaitan adalah dilarang.
SET NULL: Pembatalan Nilai FK
Pilihan SET NULL mengambil pendekatan yang berbeza. Apabila ON DELETE SET NULL ditentukan, MySQL membenarkan pemadaman baris induk tetapi membatalkan nilai kunci asing yang sepadan dalam jadual anak, dengan syarat lajur tidak ditakrifkan sebagai NOT NULL.
CASCADE: Propagation Pemadaman pada Baris Berkaitan
CASCADE, sebaliknya, mengautomasikan pemadaman bertingkat bagi baris anak yang berkaitan apabila baris induk dipadamkan. Pilihan ini memastikan bahawa data kanak-kanak juga dialih keluar, mengekalkan integriti rujukan pangkalan data.
SET LALAI: Pilihan Tidak Disokong
Pilihan SET LALAI diiktiraf oleh parser tetapi akhirnya ditolak oleh InnoDB. Ia bukan pilihan yang sah dan harus dielakkan.
Kesimpulan
Ringkasnya, tingkah laku lalai MySQL untuk klausa ON DELETE ialah NO ACTION atau RESTRICT, yang menghalang pemadaman baris induk yang mempunyai baris anak. SET NULL membatalkan nilai kunci asing dalam baris anak, manakala CASCADE memadamkan baris anak yang berkaitan secara automatik. SET DEFAULT bukan pilihan yang disokong. Memahami pilihan ini adalah penting untuk pengurusan data dan mengekalkan integriti data dalam pangkalan data hubungan.
Atas ialah kandungan terperinci Apa yang Berlaku Apabila Anda Memadam Baris Induk dalam MySQL? Memahami ON DELETE Gelagat dan Pilihan Lalai.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!