首页 >数据库 >mysql教程 >如何使用MySQL触发器从另一个表中删除数据后正确地从一个表中删除数据?

如何使用MySQL触发器从另一个表中删除数据后正确地从一个表中删除数据?

Linda Hamilton
Linda Hamilton原创
2024-11-03 16:25:03441浏览

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

MySQL 触发器:从一个表删除后从另一个表删除

问题:

您想要创建一个触发器,每当从表 1(读者)中删除一行时,该触发器就会自动从表 2 (patron_info) 中删除行。但是,您在创建触发器时遇到语法错误。

解决方案:

该错误可能是由触发器内的 DELETE 语句中的语法不正确引起的。具体来说,您需要使用 old.id 而不是顾客.id 来引用已删除行的 ID,根据以下触发器:

<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>

确保包含 ;在 DELETE 语句末尾,并检查触发器其他部分的语法是否正确。

此外,请记住在控制台窗口中输入触发器代码时使用分隔符。例如,您可以使用 $ 作为分隔符,如下所示:

<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>

以上是如何使用MySQL触发器从另一个表中删除数据后正确地从一个表中删除数据?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn