Apa yang Berlaku Apabila Anda Memadam Baris Induk dalam MySQL? Memahami ON DELETE Gelagat dan Pilihan Lalai.

Patricia Arquette
Lepaskan: 2024-11-05 22:41:02
asal
216 orang telah melayarinya

What Happens When You Delete a Parent Row in MySQL? Understanding ON DELETE Behavior and Default Options.

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan