Kekangan Kunci Asing MySQL: Memadam Rekod Orphaned
Pangkalan data sering mengekalkan hubungan antara jadual melalui kekangan kunci asing. Kekangan ini memastikan integriti data dengan menghalang rekod yatim—rekod yang merujuk kepada data yang tidak wujud dalam jadual lain. Dalam konteks ini, kami meneroka cara untuk melaksanakan pemadaman bertingkat pada kunci asing dalam MySQL.
Senario Contoh
Pertimbangkan jadual berikut:
categories_products tables create a many -kepada-banyak hubungan antara dua jadual lain. Sekarang, katakan kita mahu memadamkan kategori. Bagaimanakah kita boleh memastikan bahawa produk yang sepadan tidak dipadamkan jika ia turut dikaitkan dengan kategori lain?
Melaksanakan Pemadaman Lata
Untuk mencapai tingkah laku yang diingini, kita perlu sediakan kekangan kunci asing dengan klausa ON DELETE CASCADE. Apabila mentakrifkan lajur foreign_key_id dalam jadual anak (categories_products), kami boleh menentukan klausa ini seperti berikut:
FOREIGN KEY (category_id) REFERENCES categories (id) ON DELETE CASCADE
Klausa ini memastikan bahawa jika kategori dipadamkan, semua rekod yang sepadan dalam jadual categories_products juga akan dipadamkan. Walau bagaimanapun, lata tidak akan disebarkan ke jadual produk kerana tiada kekangan kunci asing ditakrifkan di sana.
Contoh Demonstrasi
Andaikan kami mempunyai perkara berikut data:
kategori:
produk:
kategori_produk:
Jika kami memadamkan kategori 'merah', tindakan berikut akan berlaku:
Dengan cara ini, pemadaman bertingkat memastikan integriti data dengan mengalih keluar hanya rekod berkaitan yang berkaitan, menghalang rekod yatim dan mengekalkan hubungan antara jadual.
Atas ialah kandungan terperinci Bagaimana untuk Mencegah Rekod Anak Yatim Apabila Memadam Data dengan Kekangan Kunci Asing MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!