创建删除触发器

时间:2013-05-03 20:28:55

标签: mysql triggers

我有一个名为ul_logins的表和一个名为userbaseuserchanges的表。我知道,每当我从ul_logins删除某个用户的触发器时,都会自动从userbaseuserchanges中删除相同的用户。用户的ID为id ul_loginsuserID userbaseuserchanges

我在mysql(phpmyadmin)中编写了这个触发器

CREATE OR REPLACE TRIGGER deleteUser AFTER DELETE ON ul_logins
FOR EACH ROW BEGIN
DELETE FROM userbase WHERE userID = :old.id;
END

但它不起作用,我总是得到一个错误。但我只是找不到问题所在

  

#1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法   使用'TRIGGER deleteUser AFTER DELETE on ul_logins附近   为了每行开始   在第1行删除我们

我已经谷歌搜索了,还有另一个解决方案并尝试了这个

DELIMITER |

CREATE OR REPLACE TRIGGER deleteUser AFTER DELETE ON ul_logins
FOR EACH ROW BEGIN
DELETE FROM userbase WHERE userID = :old.id;
END;|

DELIMITER ;

但这并不适用于neitehr。有什么建议吗?

1 个答案:

答案 0 :(得分:4)

这应该是正确的语法:

DROP TRIGGER IF EXISTS deleteUser;

DELIMITER |
CREATE TRIGGER deleteUser AFTER DELETE ON ul_logins
FOR EACH ROW BEGIN
  DELETE FROM userbase WHERE userID = old.id;
END;
|

DELIMITER ;