我是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;
答案 0 :(得分:0)
使用这种方式:
DELIMITER $$
CREATE TRIGGER before_A_insert
BEFORE INSERT ON A FOR EACH ROW
begin
declare temp int default 0
select count(*) into @temp from A where id = new.id and timestampdiff(minute, new.starttime, starttime) < 60);
if @temp = 50 then
set new.id = null;
end if;
END;
$$
DELIMITER ;