私はMySQLには新しく、ここでトリガーを作成するのに苦労しています。MySQLは、クエリと集約関数を使用してトリガーを作成します。
私が欲しいのは、テーブルAに新しい行を挿入する前にチェックするトリガーです。テーブルAに過去1時間に50個以上のデータがある場合は、新しい行を削除します。
次のコードは私が思いついたものですが、これは正しくありません。私はそれを修正するのを助けてください。
create trigger before_A_insert
before insert on A
for each row
begin
declare temp int default 0
set temp = (
select count(*)
from A
where id = new.id and timestampdiff(minute, new.starttime, starttime) < 60
)
if temp = 50 then
set new.id = null
end if
end;
、それだけで '' NULL'に設定id'に新しい行を挿入します。 –
@TimBiegeleisen新しい行を削除する方法はありますか?ここでの私のロジックは、idをnullにすることはできないと仮定して例外をスローするだけです。 –