Dalam reka bentuk pangkalan data, kunci asing adalah penting untuk mengekalkan integriti data dengan mewujudkan perhubungan antara jadual. Apabila mentakrifkan kunci asing, anda menentukan tindakan rujukan yang mengawal perkara yang berlaku kepada rekod anak apabila rekod induk yang dirujuk diubah suai atau dipadamkan.
Satu tindakan rujukan biasa ialah ON DELETE CASCADE, yang secara automatik memadamkan rekod anak apabila rekod tersebut rekod induk dipadamkan. Untuk menukar tingkah laku ini kepada ON DELETE RESTRICT, menghalang pemadaman rekod induk dengan rekod anak yang berkaitan, anda boleh menggunakan langkah berikut:
Laksanakan yang berikut Perintah SQL untuk mengalih keluar kekangan kunci asing sedia ada:
ALTER TABLE `table_name` DROP FOREIGN KEY `constraint_name`;
di mana table_name ialah jadual yang mengandungi lajur kunci asing dan nama_kekangan ialah nama kekangan kunci asing.
Sekarang, buat kekangan kunci asing baharu dengan yang diingini ON DELETE HAD kelakuan:
ALTER TABLE `table_name` ADD CONSTRAINT `new_constraint_name` FOREIGN KEY (`foreign_key_column`) REFERENCES `referenced_table` (`referenced_column`) ON DELETE RESTRICT;
di mana foreign_key_column ialah lajur dalam table_name referencing referenced_table, referenced_table ialah jadual yang mengandungi lajur yang dirujuk, referenced_column ialah lajur dalam referenced_table yang dirujuk oleh kunci asing dan new_constraint_name ialah nama bagi kekangan kunci asing baharu.
Contoh:
Pertimbangkan jadual Butiran Pengguna dengan kunci asing User_id merujuk kepada Pengguna jadual lain. Untuk menukar tindakan rujukan daripada ON DELETE CASCADE kepada ON DELETE RESTRICT, ikut langkah berikut:
Lepaskan kekangan kunci asing sedia ada:
ALTER TABLE `UserDetails` DROP FOREIGN KEY `FK_User_id`;
Tambah kekangan kunci asing baharu dengan ON DELETE TERHAD:
ALTER TABLE `UserDetails` ADD CONSTRAINT `FK_User_id` FOREIGN KEY (`User_id`) REFERENCES `Users` (`User_id`) ON DELETE RESTRICT;
Dengan melakukan langkah-langkah ini, anda boleh mengubah suai tindakan rujukan kunci asing untuk memastikan peraturan integriti data yang dikehendaki dikuatkuasakan dalam pangkalan data anda.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Tindakan ON DELETE Kunci Asing daripada CASCADE kepada HAD?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!