我在MariaDb服务器中有一个触发器,其代码如下:
DELIMITER //
CREATE TRIGGER `set_app_number`
BEFORE INSERT ON `table_name` FOR EACH ROW BEGIN
DECLARE newAppNo INTEGER;
SELECT Max(id)+1 INTO newAppNo FROM table_name;
SET NEW.application_number = newAppNo;
END; //
DELIMITER ;
我正在尝试在我拥有MySQL(5.7+版本)的生产服务器上创建相同的触发器。我会得到这样的错误:
误差静态分析:
分析中发现错误6处。
set_app_number
”)table_name
”附近)SQL查询:
在table_name
上插入之前为每一行BEGIN DECLARE newAppNo INTEGER创建触发器set_app_number
MySQL Said:文档
在第1行“Create TRIGGERset_app_number
BEFORE INSERT ONtable_name
”附近
我不知道这里到底有什么问题。提前道谢。
当尝试使用more->trigger->add trigger
从phpMyAdmin添加触发器时,将生成完全相同的代码。我不确定为什么它不允许在从SQL执行它时执行相同的操作。:(
删除分隔符a将其作为查询运行
CREATE TRIGGER `set_app_number`
BEFORE INSERT ON
`table_name`
FOR EACH ROW
BEGIN
DECLARE newAppNo INTEGER;
SELECT Max(id)+1 INTO newAppNo FROM table_name;
SET NEW.application_number = newAppNo;
END;