以下代码中的错误是什么。我在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和auto increment
我试图在我们插入订单表的id上加上一个前缀。
我在INSERT INTO.....
和END;
行
答案 0 :(得分:1)
您是否在触发器定义之前声明了分隔符?像
这样的东西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会认为你正试图结束你的触发器定义。