检查条件后插入

时间:2018-02-03 17:27:02

标签: mysql sql

我试过了,但它显示错误#1064

  if ((SELECT count(*) FROM group_participants WHERE collegeID = 1 AND itemID = 1) < 9)
  begin
  INSERT INTO group_participants (collegeID, partID, itemID) VALUES (1, 20 , 2)  
  end

完整的错误消息:

  

您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在第1行'if((SELECT count(*)FROM group_participants WHERE collegeID = 1 AND itemID = 1)'附近使用正确的语法

1 个答案:

答案 0 :(得分:0)

除编程块外,MySQL不支持if。您可以将其表达为:

INSERT INTO group_participants (collegeID, partID, itemID) 
    SELECT 1, 20 , 2 
    FROM dual
    WHERE (SELECT count(*)
           FROM group_participants
           WHERE collegeID = 1 AND itemID = 1
          ) < 9;

奇怪的是,插入的itemID与正在测试的catch()不同。我想这些应该是一样的。