您的 SQL 语法有错误...创建触发器时出错
Posted
技术标签:
【中文标题】您的 SQL 语法有错误...创建触发器时出错【英文标题】:You have an error in your SQL syntax... getting error when creating trigger 【发布时间】:2018-08-25 13:13:08 【问题描述】:我已经为我的数据库编写了触发器。
CREATE TRIGGER executor_type_check BEFORE INSERT ON executors
FOR EACH ROW
BEGIN
IF NEW.points <> 100
SET NEW.points = 0;
END IF;
END
导入sql文件时出现以下错误
You have an error in your SQL syntax;
check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SET NEW.points = 0' at line 5
我的 .sql 文件结构如下:
-
数据库创建
开始交易
创建表格
触发器的创建
提交
不触发不显示错误。
【问题讨论】:
缺少then
?
缺少'; ' 结束后
尝试将DELIMITER $$
或类似的东西放在触发器定义之前。
【参考方案1】:
根据您的问题下方的Comments
。
IF
语句后缺少THEN
。并且还需要添加DELIMITER
。
试试这个:
DELIMITER $$
CREATE TRIGGER executor_type_check BEFORE INSERT ON executors
FOR EACH ROW
BEGIN
IF NEW.points <> 100
THEN
SET NEW.points = 0;
END IF;
END;$$
DELIMITER ;
【讨论】:
谢谢您,使用您的代码我没有收到错误,但奇怪的是,当我尝试插入表格时,触发器似乎没有触发。例如。当我输入 99(与 100 不同)时,它仍然插入 99,而不是 0。以上是关于您的 SQL 语法有错误...创建触发器时出错的主要内容,如果未能解决你的问题,请参考以下文章