Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menukar Tindakan Rujukan Kunci Asing daripada ON DELETE CASCADE kepada ON DELETE RESTRICT?

Bagaimana untuk Menukar Tindakan Rujukan Kunci Asing daripada ON DELETE CASCADE kepada ON DELETE RESTRICT?

Linda Hamilton
Lepaskan: 2024-12-04 10:53:14
asal
577 orang telah melayarinya

How to Change a Foreign Key's Referential Action from ON DELETE CASCADE to ON DELETE RESTRICT?

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>
Salin selepas log masuk

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)
);
Salin selepas log masuk

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;
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan