Mencipta kekangan kunci asing jadual dalam MySQL memastikan integriti rujukan. Langkah-langkahnya adalah seperti berikut: Cipta dua jadual dan tentukan kunci utama. Tambahkan kekangan KUNCI ASING pada jadual anak, merujuk kunci utama jadual induk. Secara pilihan, nyatakan tindakan rujukan (seperti pemadaman bertingkat atau kemas kini terhad).
Buat kekangan kunci asing jadual dalam MySQL
Apabila kekangan kunci asing diwujudkan antara dua jadual, integriti rujukan di antara mereka boleh dipastikan. Langkah berikut memperkenalkan cara mencipta kekangan kunci asing jadual dalam MySQL:
Langkah 1: Buat dua jadual
Buat dua jadual di mana kita ingin mewujudkan kekangan kunci asing:
<code class="sql">CREATE TABLE parent_table ( id INT NOT NULL, name VARCHAR(255) NOT NULL, PRIMARY KEY (id) ); CREATE TABLE child_table ( id INT NOT NULL, parent_id INT NOT NULL, value VARCHAR(255) NOT NULL, PRIMARY KEY (id), FOREIGN KEY (parent_id) REFERENCES parent_table(id) );</code>
Langkah 2 : Tambah kekangan kunci asing dalam jadual anak
Dalam child_table
, gunakan kekangan FOREIGN KEY
untuk merujuk lajur parent_id
ke parent_table <code>id
lajur dalam : child_table
中,使用 FOREIGN KEY
约束将 parent_id
列引用到 parent_table
中的 id
列:
<code class="sql">ALTER TABLE child_table ADD FOREIGN KEY (parent_id) REFERENCES parent_table(id);</code>
第三步:指定引用操作(可选)
您可以使用 ON DELETE
和 ON UPDATE
子句指定在对父表进行删除或更新操作时对子表中受影响记录的行为:
<code class="sql">ALTER TABLE child_table ADD FOREIGN KEY (parent_id) REFERENCES parent_table(id) ON DELETE CASCADE ON UPDATE RESTRICT;</code>
在这段代码中:
ON DELETE CASCADE
:当从 parent_table
中删除记录时,将自动从 child_table
中级联删除相关记录。ON UPDATE RESTRICT
:当 parent_table
中的记录被更新时,将阻止对 child_table
rrreeeAnda boleh menggunakan ON DELETE
dan ON UPDATE
klausa menentukan kelakuan untuk rekod yang terjejas dalam jadual anak apabila operasi pemadaman atau kemas kini dilakukan pada jadual induk:
parent_table
, rekod yang berkaitan akan dipadamkan secara automatik daripada child_table
dalam lata. parent_table
dikemas kini, sebarang kemas kini kepada rekod yang terjejas dalam child_table
akan disekat. Atas ialah kandungan terperinci Bagaimana untuk menulis kekangan kunci asing semasa membuat jadual dalam MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!