0

私はMySQLがあまり得意ではありませんが、行が挿入されるたびに、テーブル内の行の総数が10を超えると、特定の行が削除されるようにトリガーを作成しようとしています。

トリガー構文なしで私が探しているのは、次のようなものです。

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

ただし、それは受け入れ可能な構文ではないようです。どうすればこれを行うことができますか?

4

2 に答える 2

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 ;
于 2012-11-29T20:41:38.843 に答える
-1
select count(1) into @cnt from table;
if (@cnt > 10) then
   // do some stuff
end if;

代わりに@cnt宣言された変数を使用できます

于 2012-11-29T20:40:37.377 に答える