MySQL Trigger: Padam Rekod daripada Jadual Bergantung Selepas Pemadaman dalam Jadual Utama
Dalam skema pangkalan data, adalah perkara biasa untuk mempunyai berbilang jadual dengan hubungan antara mereka. Apabila rekod dimanipulasi dalam jadual utama, mungkin perlu juga melakukan tindakan yang sepadan pada jadual bergantung. Pencetus MySQL menyediakan cara yang mudah untuk mengautomasikan operasi sedemikian.
Pertimbangkan senario di mana jadual yang dipanggil pelanggan menyimpan maklumat tentang individu dan jadual berkaitan yang dipanggil patron_info mengandungi butiran tambahan untuk setiap penaung. Apabila penaung dialih keluar daripada jadual pelanggan, adalah wajar untuk memadamkan juga maklumat yang sepadan mereka daripada jadual patron_info.
Untuk mencapai ini, pencetus DELETE boleh digunakan. Walau bagaimanapun, ralat sintaks ditemui semasa cuba mencipta pencetus menggunakan kod:
CREATE TRIGGER log_patron_delete AFTER DELETE on patrons FOR EACH ROW BEGIN DELETE FROM patron_info WHERE patron_info.pid = patrons.id END
Ralat (1046: Semak sintaks berhampiran END pada baris 6) menunjukkan isu dengan sintaks kod pencetus. Apabila diteliti lebih dekat, sintaks old.id harus digunakan dan bukannya patrons.id dalam pernyataan DELETE untuk merujuk ID penaung yang dipadamkan dengan betul.
Kod pencetus yang diperbetulkan adalah seperti berikut:
CREATE TRIGGER log_patron_delete AFTER DELETE on patrons FOR EACH ROW BEGIN DELETE FROM patron_info WHERE patron_info.pid = old.id; END
Adalah penting untuk ambil perhatian bahawa penggunaan pembatas (seperti $ atau //) mungkin diperlukan apabila memasukkan kod pencetus dalam tetingkap konsol untuk mengendalikan aksara tertentu dalam kod. Selain itu, jangan lupa untuk menyertakan koma bertitik pada penghujung penyataan PADAM.
Dengan mengikut garis panduan ini, pencetus akan berjaya memadamkan rekod daripada jadual patron_info apabila rekod dipadamkan daripada jadual pelanggan, memastikan data ketekalan dan integriti dalam pangkalan data.
Atas ialah kandungan terperinci Bagaimana untuk Memadam Rekod dengan Betul dari Jadual Bergantung Selepas Memadam dari Jadual Utama dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!