2014-03-04 62 views
0

我试图做一个MySQL程序,它会将数据插入到表中,如果同一个表的count(*)少于5行。INSERT INTO table IF count(*)<5

的逻辑是:

Declare @count INT; 
SET @count = (SELECT COUNT(*) FROM table); 
IF (@count = 1) 
INSERT INTO table(item1, item2, item3) VALUES('item 1', 'item 2', 'item 3'); 
+0

什么是th错误? –

回答

0

你缺少的代码块正确的语法。 它应该包含BEGIN .. ENDIF ... THEN .. END IF块。

BEGIN 
    Declare @count INT; 
    SET @count = (SELECT COUNT(*) FROM table); 
    IF (@count = 1) THEN 
    INSERT INTO table(item1, item2, item3) VALUES('item 1', 'item 2', 'item 3'); 
    END IF; 
END; 

如果要插入,只有当计数小于5则,
变化:

IF (@count = 1) THEN 

要:

IF (@count < 5) THEN 
+0

我在“IF(@count = 1)THEN”行出现错误: 您的SQL语法错误;检查与您的MySQL服务器版本相对应的手册,以在'IF(@broj IS NULL)THEN'附近使用正确的语法。 –

+0

对不起,sql代码需要在触发器或过程中运行。它可以作为一个简单的查询。 该代码完美无缺,“Declare @count INT;”线。 –