请帮忙 我有下面的触发代码
DELIMITER $$
CREATE TRIGGER `mydb`.`table0`
AFTER INSERT ON `mydb`.`table0`
FOR EACH ROW
BEGIN
IF (
SELECT table1.idtable1 FROM table2, table1, table
WHERE table1.idtable1=table2.idtable2
and table0.idtable0=table1.idtable1
)
THEN
UPDATE targettable
SET targettable.column = 1
WHERE targettable.idtable=table1.idtable1;
END IF;
END$$
运行后显示错误
1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 17 行 '' 附近使用的正确语法
如何解决? MySQL版本是5.5.34
最佳答案
table是mysql中的保留字。用反引号包围表格。另外,您最后还缺少分隔符和分号。 这有效:
DELIMITER $$
CREATE TRIGGER `mydb`.`table0`
AFTER INSERT ON `mydb`.`table0`
FOR EACH ROW
BEGIN
IF (
SELECT table1.idtable1 FROM table2, table1, `table`
WHERE table1.idtable1=table2.idtable2
and table0.idtable0=table1.idtable1
)
THEN
UPDATE targettable
SET targettable.column = 1
WHERE targettable.idtable=table1.idtable1;
END IF;
END;$$
delimiter ;
希望对您有所帮助!
关于mysql - 在 MySQL 中运行查询触发器时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29881595/