Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memadam Data dengan Betul dari Satu Jadual Selepas Memadam dari Lain Menggunakan Pencetus MySQL?

Bagaimana untuk Memadam Data dengan Betul dari Satu Jadual Selepas Memadam dari Lain Menggunakan Pencetus MySQL?

Linda Hamilton
Linda Hamiltonasal
2024-11-03 16:25:03431semak imbas

How to Correctly Delete Data from One Table After Deleting from Another Using MySQL Triggers?

Pencetus MySQL: Memadam daripada Satu Jadual Selepas Memadam daripada yang Lain

Masalah:

Anda ingin mencipta pencetus yang memadamkan baris secara automatik daripada Jadual 2 (patron_info) apabila baris dipadamkan daripada Jadual 1 (penaung). Walau bagaimanapun, anda menghadapi ralat sintaks semasa mencipta pencetus.

Penyelesaian:

Ralat mungkin disebabkan oleh sintaks yang salah dalam pernyataan DELETE dalam pencetus . Khususnya, anda perlu menggunakan old.id dan bukannya patrons.id untuk merujuk kepada ID baris yang dipadamkan, mengikut pencetus berikut:

<code class="sql">CREATE TRIGGER log_patron_delete AFTER DELETE ON patrons
FOR EACH ROW
BEGIN
  DELETE FROM patron_info
  WHERE patron_info.pid = old.id;
END</code>

Pastikan anda memasukkan ; pada penghujung pernyataan DELETE, dan semak sintaks yang betul pada bahagian pencetus yang lain juga.

Selain itu, ingat untuk menggunakan pembatas apabila memasukkan kod pencetus dalam tetingkap konsol. Contohnya, anda boleh menggunakan $ sebagai pembatas, seperti:

<code class="sql">DELIMITER $

CREATE TRIGGER log_patron_delete AFTER DELETE ON patrons
FOR EACH ROW
BEGIN
  DELETE FROM patron_info
  WHERE patron_info.pid = old.id;
END$

DELIMITER ;

$</code>

Atas ialah kandungan terperinci Bagaimana untuk Memadam Data dengan Betul dari Satu Jadual Selepas Memadam dari Lain Menggunakan Pencetus MySQL?. 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