我是 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;
最佳答案
这样使用:
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 ;
关于MySQL创建具有查询和聚合功能的触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42547458/