私はMySQLがあまり得意ではありませんが、行が挿入されるたびに、テーブル内の行の総数が10を超えると、特定の行が削除されるようにトリガーを作成しようとしています。
トリガー構文なしで私が探しているのは、次のようなものです。
IF (SELECT COUNT(*) FROM table) > 10 THEN
//do some stuff
END IF;
ただし、それは受け入れ可能な構文ではないようです。どうすればこれを行うことができますか?
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 ;
select count(1) into @cnt from table;
if (@cnt > 10) then
// do some stuff
end if;
代わりに@cnt
宣言された変数を使用できます