创建触发器错误:语法无效。

3

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服务器版本对应的手册,了解使用正确的语法。错误发生在第6行:SET NEW.id = CONCAT('YTUM', LPAD(LAST_INSERT_ID(), 8, '00000')); END


1
SET 可以与 UPDATE 查询一起使用,但不能与 INSERT 一起使用。 - Harsh
是的,我认为触发器不是你的问题。 - durbnpoisn
我把Insert改成了Update,但没有成功。 - TD M Lovett
任何其他建议将不胜感激。 - TD M Lovett
在你的插入语句之后使用 ;,并且不要忘记设置 DELIMITER。 - Mihai
1个回答

0

你的格式有误,请记得需要 DELIMITER $$ 语句,因为它与创建存储过程没有什么不同。

遇到这样的问题时,请随时查阅文档。

请向下滚动文档的一半以查看示例。

但是,这就是你要找的:

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 ;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接