2014-09-26 78 views
0

我试图根据通过的新事务跟踪用户销售情况。这些交易通过我们的网站而不是他们的桌面应用程序分配。它给了我一个语法错误,但我似乎无法弄清楚为什么。带变量的插入后的MySQL触发语法错误

这是我的代码:

DROP TRIGGER IF EXISTS AssignTrans; 
DELIMITER $$ 
CREATE TRIGGER `testing_cake3`.`AssignTrans` AFTER INSERT ON `main_1` FOR EACH ROW 
    BEGIN 
     SET @t1 = (SELECT team_id FROM team_assignments WHERE team_assignments.misc_id = NEW.CUSTOMER_ID AND team_assignments.type = 1); 
     SET @t2 = (SELECT team_id FROM team_assignments WHERE team_assignments.misc_id = NEW.GROUP_ID AND team_assignments.type = 0); 
     IF (@t1) THEN 
      INSERT INTO team_trans (team_id, trans_id, type, misc_id) VALUES (@t1, NEW.id, 0, 1); 
     ELSE IF (@t2) THEN 
      INSERT INTO team_trans (team_id, trans_id, type, misc_id) VALUES (@t2, NEW.id, 0, 1); 
     END IF; 
    END $$ 
DELIMITER ; 
+0

什么是你给出的语法错误是什么? – 2014-09-26 20:01:39

+0

#1064 - 您的SQL语法错误;检查与您的MySQL服务器版本相对应的手册,在第10行的''旁边使用正确的语法 – chrisShick 2014-09-26 20:05:21

+0

这是在您设置触发器时还是在运行可将其设置为关闭的命令时使用的? – cmorrissey 2014-09-26 20:10:11

回答