mysql触发器问题

本人刚学,写了一段代码,但是不好使,请大家给指点一下.
这个触发器是判断表里有没有相同编号数据的,用于多人同时添加数据.如果表里有值,把编号加一后再添加,字段太多,只先写了两个,代码如下:
CREATE TRIGGER f_kaisha_info_add//触发器名
AFTER insert ON f_kaisha_info //表名
FOR insert //添加方法
as
declare @KAISHAID
declare @count
set @KAISHAID=(select KAISHAID from inserted)
select @count=count(*) from f_kaisha_info where KAISHAID=@KAISHAID
if @count=0 then
insert into f_kaisha_info(KAISHAID,KAISHANAME)select KAISHAID,KAISHANAME from inserted
else
set @KAISHAID=(select substr(MAX(KAISHAID),4) from f_kaisha_info)
set @a=@KAISHAID+1;
set @b=CIN
set @KAISHAID=$b.str_pad($a,7,"0",str_pad_left)
insert into f_kaisha_info(KAISHAID,KAISHANAME)@KAISHAID
select KAISHANAME from inserted
endif
编号名是指定的,例"CIN0000001"
第一次用这东西,在mysql里创建不了,有错误,有图片,请高手们帮帮忙.

这个触发器写的有问题哦, 虽然我不会mysql的语句,
可是,
set @KAISHAID=(select KAISHAID from inserted)
select @count=count(*) from f_kaisha_info where KAISHAID=@KAISHAID
if @count=0 then
insert into f_kaisha_info(KAISHAID,KAISHANAME)select KAISHAID,KAISHANAME from inserted
这个部分不是多余吗? 竟然已经都插入了,为什么还要判断有没有这个Kaishaid ????????

而且, 这个触发器怎么停啊?
你插入了1条记录, 然后触发器当然会发现已经有了这个kaishaid,
就会+1 然后用一样的名字再存一个, 存的同时又会运行触发器,
不就是无限循环了?
触发器这个东西很敏感的。
这个触发器是不是应该写成before insert?
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网