Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk menulis kekangan kunci asing semasa membuat jadual dalam MySQL

Bagaimana untuk menulis kekangan kunci asing semasa membuat jadual dalam MySQL

下次还敢
下次还敢asal
2024-04-22 19:51:381146semak imbas

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).

Bagaimana untuk menulis kekangan kunci asing semasa membuat jadual dalam MySQL

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 DELETEON 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_tablerrreee
Langkah 3: Tentukan operasi rujukan (pilihan)

Anda 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:

rrreee
    Dalam kod ini:
  • ON DELETE CASCADE: Apabila rekod dipadamkan daripada parent_table, rekod yang berkaitan akan dipadamkan secara automatik daripada child_table dalam lata.
  • PADA HAD KEMASKINI: Apabila rekod dalam parent_table dikemas kini, sebarang kemas kini kepada rekod yang terjejas dalam child_table akan disekat.
Arahan: 🎜🎜🎜🎜Pastikan jenis data lajur dalam jadual induk adalah sama dengan lajur kunci asing dalam jadual anak. 🎜🎜Jika lajur dalam jadual induk membenarkan nilai nol, lajur kunci asing dalam jadual anak juga mesti membenarkan nilai nol. 🎜🎜Jika anda menukar lajur dalam jadual induk selepas mencipta kekangan kunci asing, anda perlu mengubah suai kekangan kunci asing untuk memadankan perubahan. 🎜🎜Kekangan utama asing membantu memastikan integriti data dan menghalang pemasukan dan pemadaman data yang tidak konsisten. 🎜🎜

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn