2017-03-23 291 views
0

我想写一个触发器,它会在另一个表MySQL的触发器插入之前

插入一个默认值将记录插入我的学生表我想插入新记录到我Student_Chapter表后。

学生表具有自动递增的称为S_ID的字段以及该表的主键。

的Student_Chapter表有两个字段 student_id数据诠释 Chapter_ID诠释

我试图创建这个触发器,当你进入一个新的学生记录射击。 但是,我尝试创建它时出现错误...并尝试了几件事...并查看了此网站上的各种示例。

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服务器版本对应的手册,以找到在';'附近使用的正确语法。 INSERT INTO Student_Chapter(Chapter_ID,student_id数据)值(Default_ID,新建。”在6号线

回答

0

一个失踪)?后的 “未分配” 此外,不应该你用@

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; 
前缀您的参数