Menukar Tindakan Rujukan Kunci Asing
Kekangan kunci asing menguatkuasakan integriti data dengan mewujudkan perhubungan antara jadual. Satu senario biasa ialah mengurus tingkah laku apabila rekod yang dirujuk dipadamkan. Artikel ini membincangkan cara menukar tindakan rujukan, khususnya daripada ON DELETE CASCADE kepada ON DELETE RESTRICT.
ON DELETE CASCADE vs. ON DELETE RESTRICT
ON DELETE CASCADE: Apabila rekod ibu bapa dipadamkan, semua rekod anak yang sepadan akan dipadamkan secara automatik. Tingkah laku ini boleh menyebabkan kehilangan data yang tidak diingini.
PADA HAD PADAM: Menghalang pemadaman rekod induk jika rekod itu mempunyai sebarang rekod anak. Ini memastikan integriti data dikekalkan.
Perintah SQL untuk Mengubah Tindakan Rujukan
Arahan SQL berikut mengubah suai tindakan rujukan untuk lajur kunci asing:
ALTER TABLE <table_name> ADD CONSTRAINT <constraint_name> FOREIGN KEY (<column_name>) REFERENCES <referenced_table_name> ON DELETE <referential_action>
Dalam kes anda, table_name ialah "table1", constraint_name ialah "fk_table2_id", nama_lajur ialah "fk_table2_id", nama_jadual yang dirujuk ialah "table2", dan tindakan_rujukan ialah "RESTRICT".
Contoh
Andaikan anda mempunyai dua jadual, "table1" dan "table2":
CREATE TABLE table1 ( id INT NOT NULL, fk_table2_id INT NOT NULL, PRIMARY KEY (id), FOREIGN KEY (fk_table2_id) REFERENCES table2(id) ON DELETE CASCADE ); CREATE TABLE table2 ( id INT NOT NULL, PRIMARY KEY (id) );
Untuk menukar kekangan kunci asing dalam "table1" kepada ON DELETE RESTRICT, laksanakan arahan berikut:
ALTER TABLE table1 ADD CONSTRAINT fk_table2_id FOREIGN KEY (fk_table2_id) REFERENCES table2(id) ON DELETE RESTRICT;
Ini akan menghalang pemadaman sebarang rekod daripada "table2" jika masih terdapat rekod anak yang merujuknya dalam "table1".
Atas ialah kandungan terperinci Bagaimana untuk Menukar Tindakan Rujukan Kunci Asing daripada ON DELETE CASCADE kepada ON DELETE RESTRICT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!