Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengubah Suai Kekangan SQL Sedia Ada, Seperti Menambah ON DELETE CASCADE?

Bagaimanakah Saya Boleh Mengubah Suai Kekangan SQL Sedia Ada, Seperti Menambah ON DELETE CASCADE?

Barbara Streisand
Barbara Streisandasal
2024-12-17 10:49:26834semak imbas

How Can I Modify Existing SQL Constraints, Such as Adding ON DELETE CASCADE?

Mengubah Suai Kekangan

Anda mungkin menghadapi keadaan di mana anda perlu mengemas kini kekangan sedia ada dalam pangkalan data SQL anda. Satu senario sedemikian melibatkan penambahan klausa ON DELETE CASCADE kepada kekangan kunci asing sedia ada. Klausa ini memastikan bahawa apabila baris dipadamkan daripada jadual induk, baris yang sepadan dalam jadual anak juga dipadamkan secara automatik.

Mengubah Kekangan

Bertentangan dengan tanggapan bahawa kekangan tidak boleh diubah suai, anda sememangnya boleh mengubahnya dengan melepaskan kekangan sedia ada dan menciptanya semula dengan yang dikehendaki pengubahsuaian. Untuk menggambarkan proses ini, pertimbangkan kekangan ACTIVEPROG_FKEY1 pada jadual ACTIVEPROG:

CONSTRAINT ACTIVEPROG_FKEY1 FOREIGN KEY(ActiveProgCode) REFERENCES PROGRAM(ActiveProgCode),

Untuk menambah klausa ON DELETE CASCADE pada kekangan ini, ikuti langkah berikut:

  1. Lepaskan yang Sedia Ada Kekangan:

    ALTER TABLE ACTIVEPROG DROP CONSTRAINT ACTIVEPROG_FKEY1;
  2. Buat Semula Kekangan dengan Pengubahsuaian yang Diingini:

    ALTER TABLE ACTIVEPROG
    ADD CONSTRAINT ACTIVEPROG_FKEY1 FOREIGN KEY(ActiveProgCode) REFERENCES PROGRAM(ActiveProgCode)
    ON DELETE CASCADE;

Oleh mengikut langkah ini, anda berjaya mengubah kekangan untuk memasukkan klausa ON DELETE CASCADE, memastikan bahawa apabila rekod dipadamkan daripada jadual PROGRAM, rekod yang sepadan dalam jadual ACTIVEPROG dialih keluar secara automatik.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengubah Suai Kekangan SQL Sedia Ada, Seperti Menambah ON DELETE CASCADE?. 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