根据行数执行查询?

时间:2012-11-29 20:32:59

标签: mysql sql database triggers

我对MySQL不太好,但我正在尝试创建一个触发器,以便每当插入一行时,如果表中的总行数大于10,则删除某行。

我正在寻找的,没有触发器语法,是这样的:

IF (SELECT COUNT(*) FROM table) > 10 THEN
//do some stuff
END IF;

然而,这似乎不是可接受的语法。我应该怎么做呢?

2 个答案:

答案 0 :(得分:0)

DELIMITER &&

CREATE TRIGGER trigger_name AFTER INSERT ON table_name FOR EACH ROW

BEGIN

DECLARE x INT;
SET x = (SELECT count(*) FROM table_name); 

IF x > 10 THEN

    DELETE FROM table_name where condition;

END IF;

END&&

DELIMITER ;

答案 1 :(得分:-1)

select count(1) into @cnt from table;
if (@cnt > 10) then
   // do some stuff
end if;

而不是@cnt您可以使用声明的变量