MySQL触发器插入之前

时间:2017-03-23 02:46:29

标签: mysql triggers sql-insert

我试图编写一个触发器,在另一个表中插入一个默认值

将记录插入我的学生表后,我想在我的Student_Chapter表中插入一条新记录。

学生表具有名为S_ID的字段,该字段自动递增,并且该表的主键为。

Student_Chapter表有两个字段 Student_ID Int Chapter_ID Int

我尝试在您输入新的学生记录时创建此触发器。 但是我在尝试创建它时遇到错误......我已经尝试了几件事......并查看了该网站上的各种示例。

Create Trigger AssignDefaultChapter_trigger 
Before INSERT On Students
FOR EACH ROW
BEGIN
    DECLARE Default_ID INT;
        SET Default_ID =(SELECT C_ID FROM Chapter WHERE ChName = "UNASSIGNED";
    Insert into Student_Chapter(Chapter_ID,Student_ID) values (Default_ID,New.S_ID);
END;

据我所知,该插入没有任何问题。

我得到的错误是#1064 - 您的SQL语法中有错误;检查与您的MySQL服务器版本对应的手册,以获得正确的语法,以便在附近使用&#39 ;;插入Student_Chapter(Chapter_ID,Student_ID)值(Default_ID,NEW。'在第6行

1 个答案:

答案 0 :(得分:0)

缺少)?在" UNASSIGNED"之后 此外,您不应在参数前加@

Create Trigger AssignDefaultChapter_trigger 
Before INSERT On Students
FOR EACH ROW
BEGIN
    DECLARE @Default_ID INT;
        SELECT @Default_ID = C_ID FROM Chapter WHERE ChName = "UNASSIGNED";
    Insert into Student_Chapter(Chapter_ID,Student_ID) values (@Default_ID,New.S_ID);
END;