#1064-您的sql语法有错误;请检查与您的mariadb服务器版本相对应的手册,以获取要在“”附近使用的正确语法

czfnxgou  于 2021-08-09  发布在  Java
关注(0)|答案(2)|浏览(333)
/* Create trigger for Message system*/
CREATE TRIGGER IF NOT EXISTS TRG_MSG
AFTER INSERT ON Order_Detail
FOR EACH ROW
BEGIN
    INSERT INTO Messages (Order_ID, Member_ID, Message, Msg_Date)
    VALUES (new.Order_ID, new.Member_ID, 'Your Order is Placed!...', CURRENT_DATE);
END;

在mysql中,我得到了这个错误。。。

5lwkijsr

5lwkijsr1#

使用分隔符
就像

DELIMITER //
CREATE TRIGGER IF NOT EXISTS TRG_MSG
AFTER INSERT ON Order_Detail
FOR EACH ROW
BEGIN
    INSERT INTO Messages (Order_ID, Member_ID, Message, Msg_Date)
    VALUES (NEW.Order_ID, NEW.Member_ID, 'Your Order is Placed!...', CURRENT_DATE);
END;
DELIMITER ;
mwecs4sa

mwecs4sa2#

mysql的 CREATE TRIGGER 语法不支持 IF NOT EXISTS 选项。
此外,您还需要重新定义 DELIMITER 在创建触发器之前 ; 触发器主体中的s与周围环境不冲突 create trigger 声明。

DELIMITER //

CREATE TRIGGER RG_MSG
AFTER INSERT ON Order_Detail
FOR EACH ROW
BEGIN
    INSERT INTO Messages (Order_ID, Member_ID, Message, Msg_Date)
    VALUES (new.Order_ID, new.Member_ID, 'Your Order is Placed!...', CURRENT_DATE);
END//

DELIMITER ;

在db小提琴上演示。

相关问题