MYSQL数据库触发器的插入限制[急]
表A里面有两个字段:ID,UserID现在要求写一个触发器,在插入记录的时候进行判断,如果插入数据UserID的值存在并且大于5条的时候返回,不执行插入操作比如将User...
表A 里面有两个字段:ID,UserID 现在要求写一个触发器,在插入记录的时候进行判断,如果插入数据UserID的值存在并且大于5条的时候返回,不执行插入操作 比如将UserID是0002的记录插入表中,这时表中UserID等于0002的记录已经大于5条了,那么这次操作就不会被执行! 这个触发器该怎么写呢?谢谢大侠指点一二
展开
2个回答
推荐于2017-12-15
展开全部
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的错误,插入失败。</SPAN>
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的错误,插入失败。</SPAN>
2013-06-10
展开全部
用INSTEAD OF 。获取该userid下的记录数量,判断一下不就可以了吗。符合条件你就执行一下,不符合就不执行呗。instead of是替换其执行,原来执行的语句不执行了,而是仅仅作为触发触发器的条件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询