【发布时间】:2011-08-16 13:10:03
【问题描述】:
看这段代码:
分隔符 $$ 如果存在 `after_product_insert` 则删除触发器 $$ 创建触发器`after_product_insert` 在“产品”上插入后 每一行 更新`categories` SET product_count=product_count+1 where id = NEW.category_id; 结束$$这运行正常,但显示一些错误。这是输出:
查询正常,0 行受影响(0.16 秒) ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“END”附近使用正确的语法因此,即使创建了触发器 - 脚本(包含此触发器)也会因为错误而死掉。这可能真的很简单,但不知何故我错过了重点。帮助任何人?
【问题讨论】:
-
您可以尝试将:
where id=更改为where categories.id=吗?我猜两个表中都存在id字段。 -
您还有一个
END,但没有BEGIN。您可以删除END或添加BEGIN。 -
'id' 不会产生问题,因为 id 用于 'update categories' 语句的上下文中。不过感谢END-BEGIN。对我来说是一个可怕的错误。浪费时间。
标签: mysql