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

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

Patricia Arquette
Lepaskan: 2024-12-01 00:59:11
asal
852 orang telah melayarinya

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

Mengubah suai Tindakan Rujukan Kunci Asing

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:

Langkah 1: Gugurkan Kekangan Kunci Asing Sedia Ada

Laksanakan yang berikut Perintah SQL untuk mengalih keluar kekangan kunci asing sedia ada:

ALTER TABLE `table_name` DROP FOREIGN KEY `constraint_name`;
Salin selepas log masuk

di mana table_name ialah jadual yang mengandungi lajur kunci asing dan nama_kekangan ialah nama kekangan kunci asing.

Langkah 2: Tambah Kekangan Kunci Asing Baharu dengan ON DELETE RESTRICT

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

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:

  1. Lepaskan kekangan kunci asing sedia ada:

    ALTER TABLE `UserDetails` DROP FOREIGN KEY `FK_User_id`;
    Salin selepas log masuk
  2. 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;
    Salin selepas log masuk

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!

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