MYSQL数据库触发器的插入限制[急]

2025-03-26 05:08:05
推荐回答(2个)
回答1:

MYSQL没有TRIGGER回滚 create trigger update_exceed BEFORE INSERT on A
for each row
begin
select count(*) into @ee from A where UserID=new.UserID;
if @ee>=5 then
insert into A(id) values(0);
end if;
end
加粗部分,就是拦截部分。由于MYSQL在触发器内不允许对自身的修改,所以会产生一个1442的错误,插入失败。

回答2:

用INSTEAD OF 。获取该userid下的记录数量,判断一下不就可以了吗。符合条件你就执行一下,不符合就不执行呗。instead of是替换其执行,原来执行的语句不执行了,而是仅仅作为触发触发器的条件。