Rumah >pangkalan data >tutorial mysql >Bagaimanakah 'ON DELETE CASCADE' dalam MySQL Memastikan Integriti Data Apabila Memadam Baris Berkaitan?
'ON DELETE CASCADE' MySQL: Mengekalkan Integriti Rujukan
Reka bentuk pangkalan data selalunya melibatkan mewujudkan hubungan antara jadual. Kekangan ON DELETE CASCADE
MySQL menawarkan penyelesaian yang mantap untuk mengurus pemadaman data berkaitan secara automatik. Ini memastikan integriti data dengan menyegerakkan pemadaman merentas jadual terpaut.
Menangani Cabaran Integriti Rujukan
Pertimbangkan senario biasa: perhubungan banyak dengan satu antara komponen dan jenisnya. Matlamatnya adalah untuk memadam secara automatik semua komponen yang dikaitkan dengan jenis tertentu apabila jenis itu dipadamkan. Walau bagaimanapun, kebimbangan sering timbul tentang pemadaman jenis yang tidak diingini apabila komponen dialih keluar.
Pelaksanaan yang Betul
Kuncinya ialah takrifan tepat bagi kekangan kunci asing pada jadual components
. Berikut ialah kod SQL yang dioptimumkan:
<code class="language-sql">CREATE TABLE `components` ( `id` int(10) unsigned NOT NULL auto_increment, `typeId` int(10) unsigned NOT NULL, `moreInfo` VARCHAR(32), -- etc PRIMARY KEY (`id`), KEY `type` (`typeId`) CONSTRAINT `myForeignKey` FOREIGN KEY (`typeId`) REFERENCES `types` (`id`) ON DELETE CASCADE ON UPDATE CASCADE )</code>
Penjelasan Terperinci
Definisi Kunci Asing: Klausa FOREIGN KEY
memautkan lajur typeId
dalam jadual components
ke lajur id
dalam jadual types
.
ON DELETE CASCADE
Tindakan: Bahagian penting ini menentukan bahawa pemadaman baris daripada jadual types
akan mencetuskan pemadaman semua baris yang sepadan secara automatik dalam jadual components
yang typeId
sepadan.
ON UPDATE CASCADE
Tindakan: Ini memastikan bahawa jika id
dalam jadual types
dikemas kini, typeId
yang sepadan dalam jadual components
dikemas kini juga.
Keperluan Enjin InnoDB: Kekangan kunci asing memerlukan enjin storan InnoDB. MyISAM, lalai yang lebih lama, tidak mempunyai fungsi ini.
Pendekatan ini menjamin bahawa pemadaman jenis secara automatik mengalih keluar semua komponen yang berkaitan, memperkemas pengurusan pangkalan data dan menegakkan integriti data.
Atas ialah kandungan terperinci Bagaimanakah 'ON DELETE CASCADE' dalam MySQL Memastikan Integriti Data Apabila Memadam Baris Berkaitan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!