【发布时间】:2012-08-02 19:53:02
【问题描述】:
范围:两个表。创建新顾客时,他们会将一些关于他们的信息存储到第二张表中(这也是使用触发器完成的,它按预期工作)。这是我的表结构和关系的示例。
表 1-> 顾客
+-----+---------+-----+
+ id + name + val +
+=====+=========+=====+
+ 37 + george + x +
+-----+---------+-----+
+ 38 + sally + y +
+-----+---------+-----+
表 2 -> patron_info
+----+-----+----------+
+ id + pid + name +
+----+-----+----------+
+ 1 + 37 + george +
+----+-----+----------+
+ 2 + 38 + sally +
+----+-----+----------+
管理员可以管理读者。当他们选择移除一位顾客时,该顾客将从 table 1 patrons 中移除。此时,table 2 patron_info 没有任何反应。
当表 1 删除了一个项目时,我只是想创建一个触发器以从表 2 中删除。这是我尝试过的...
最初,如果存在触发器,我会尝试放下它(只是为了清除空气)...
DROP TRIGGER IF EXISTS log_patron_delete;
然后我尝试创建触发器...
CREATE TRIGGER log_patron_delete AFTER DELETE on patrons
FOR EACH ROW
BEGIN
DELETE FROM patron_info
WHERE patron_info.pid = patrons.id
END
此时,我收到语法错误1046: Check syntax near END on line 6。我不知道此时错误是什么。我尝试了几种不同的变体。另外,我需要在这里使用分隔符吗?
谁能帮助我恢复理智?
【问题讨论】:
-
您需要什么帮助?你真正的问题是什么?
-
@vivek_jonam 删除触发器不会触发。它在第 6 行的“END”上给了我一个 sytnax 错误。另外,我是否将其包装在
DELIMETER $$中? -
@Ohgodwhy:只是关于 memcache 问题的注释 - 它仅在我添加后才链接。在我这样做之前,“相关”中没有。
标签: mysql triggers mysql-error-1046