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中文网其他相关文章!