我是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;
這不會丟棄新行,它只是插入與'id'設置爲'NULL'一個新行。 –
@TimBiegeleisen有沒有辦法刪除新行?我的邏輯是讓它拋出一個異常,假設id不能爲空。 –