创建触发器错误:语法无效 [英] Create trigger error: invalid syntax

查看:72
本文介绍了创建触发器错误:语法无效的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

SQL查询:

CREATE TRIGGER tg_newuser_insert
BEFORE INSERT ON tbl_newuser
FOR EACH ROW
BEGIN
  INSERT INTO tbl_seq VALUES (NULL)
  SET NEW.id = CONCAT('YTUM', LPAD(LAST_INSERT_ID(), 8, '00000'));
END

MySQL表示:说明文件
#1064-您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册,以在'SET NEW.id = CONCAT('YTUM',LPAD(LAST_INSERT_ID(),8,'00000'))附近使用正确的语法; END',位于第6行

MySQL said: Documentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET NEW.id = CONCAT('YTUM', LPAD(LAST_INSERT_ID(), 8, '00000')); END' at line 6

推荐答案

您的格式已关闭,请记住需要DELIMITER $$语句,因为它与创建存储过程没有什么不同.

Your Formatting is off, remember DELIMITER $$ statements are required, as it is no different than creating a stored procedure.

在遇到此类问题时,请随时查阅文档

向下滚动文档约一半以查看示例.

Scroll about half way down the documents to see the example.

但是,这就是您要寻找的:

But, This is what your looking for:

DELIMITER $$
CREATE TRIGGER tg_newuser_insert 
BEFORE UPDATE ON tbl_newuser
FOR EACH ROW
    BEGIN

        SET NEW.id = CONCAT('YTUM', LPAD(LAST_INSERT_ID(), 8, '00000'));

    END $$
DELIMITER ;

这篇关于创建触发器错误:语法无效的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆