PHPMyAdmin 更新触发错误
Posted
技术标签:
【中文标题】PHPMyAdmin 更新触发错误【英文标题】:PHPMyAdmin Update Trigger Error 【发布时间】:2014-08-22 12:21:14 【问题描述】:我试图通过 phpMyAdmin 触发器添加触发器工具向我的数据库中的表添加触发器。
我在同一个数据库中有两个表:table_A 和 table_B。 我正在检查从触发器返回的更新值是否等于 1。如果是,我想更新 table_B 中的值。这是我的代码:
SELECT var_a FROM INSERTED
IF var_a = 1 THEN
UPDATE table_B
SET table_B.someVal = table_B.someVal + 1;
END IF;
错误:
您的 SQL 语法有错误;检查与您的 mysql 服务器版本相对应的手册,以获得在 'IF var_a = 1 THEN 附近使用的正确语法 更新表_B SET table_B.someVal = table_B.someVal + 1; E' 在第 2 行
感谢您的帮助。这是语法错误吗?
【问题讨论】:
【参考方案1】:是的,这是一个语法错误。请注意,MySQL 不使用特殊的 INSERTED
表(对于 SQL Server 来说是特殊的。)
即使您有一个名为INSERTED
的表,这仍然不是有效的触发器 MySQL 语法;至少您需要以分号结束 SELECT 语句。但是不允许触发器返回结果集,您需要执行 SELECT ... INTO,或者使用游标。
使用“NEW”和“OLD”关键字来限定对正在更新的行中列的引用。
要检查分配给var_a
列的值,请参考NEW.var_a
例如:
IF NEW.var_a = 1 THEN
UPDATE table_B
SET table_B.someCol = tableB.someCol + 1;
END IF;
【讨论】:
我真傻。感谢您的建议,成功了!以上是关于PHPMyAdmin 更新触发错误的主要内容,如果未能解决你的问题,请参考以下文章