下面的代码有什么错误。我正在mysql中执行
CREATE TRIGGER tg_order_insert
BEFORE INSERT
ON `order` FOR EACH ROW
BEGIN
INSERT INTO `grocery`.`order_seqid` VALUE(NULL);
SET NEW.order_id = CONCAT('#GNC', LPAD(LAST_INSERT_ID(),3,'0'));
END;
Grocery是数据库,order_seqid和order是2个表。
order_seqid 是一个只有 1 个属性(如果类型为 int 且自动递增)的表。
我试图在我们插入订单表的 id 上添加前缀。
我在 INSERT INTO.....
和 END;
行
最佳答案
您是否在触发器定义之前声明了分隔符?类似的东西
DELIMITER //
CREATE TRIGGER tg_order_insert
BEFORE INSERT
ON `order` FOR EACH ROW
BEGIN
INSERT INTO `grocery`.`order_seqid` VALUE(NULL);
SET NEW.order_id = CONCAT('#GNC', LPAD(LAST_INSERT_ID(),3,'0'));
END
//
因为如果您不这样做,那么当 MySQL 看到第一个 ;
并调用语法错误时,它会认为您正在尝试结束触发器定义。
关于mysql - mysql中的触发器导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58419165/