mysql - 在 MySQL 中运行查询触发器时出错

标签 mysql triggers

请帮忙 我有下面的触发代码

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/

相关文章:

php - 如何在mysql中填充数据

php - 如何在线程中组织图像?

php - 如何使用 ajax 从 mysql 查询向 jquery 表添加行?

mysql - 使用 Mysql 触发器删除行

Android - SQLite 触发器与 Java SQL 插入,哪个更有效?

sql - 当删除另一个表中的行时,SQLite删除表

mysql - phpMyAdmin 中的一栏

mysql - 在 MySQL 中如何编写比子查询更好地连接两个表的 SQL?

javascript - 具有特定范围的自定义 OnChange() 触发器 (googlesheet)

mysql - 这个mysql触发器有什么问题吗?