MySQL使用查询和聚合功能创建触发器

时间:2017-03-02 05:23:39

标签: 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;

1 个答案:

答案 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 ;