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
Lepaskan: 2024-12-17 10:49:26
asal
833 orang telah melayarinya

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

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;
    Salin selepas log masuk
  2. Buat Semula Kekangan dengan Pengubahsuaian yang Diingini:

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

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!

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