mysql 触发器end报错_mysql中触发器这么写报错,哪位大侠帮忙看看有什么错?

createtriggertrig_instercostcenterafterinsertoncost_centerforeachrowbegindeclare@codevarchar(20),@namevarchar(20);select@code=code,@name=namefromInserted;insertintooffice...

create trigger trig_instercostcenter

after insert on cost_center

for each row

begin

declare @code varchar(20), @name varchar(20);

select @code=code,@name=name from Inserted;

insert into office(office_code,office_name,cost_center_id,cost_center_code) values (@code,@name,'',@code);

end

是的,对mysql触发器不懂,后来修改成这样的了:

drop trigger if exists cost_center_office_trig;

create trigger cost_center_office_trig

after insert

on cost_center

for each row

begin

declare v_1 varchar(20);

declare v_2 varchar(20);

set v_1=(select code from cost_center where id=new.id);

set v_2=(select name from cost_center where id=new.id);

insert into office(office_code,office_name,cost_center_id,cost_center_code) values(v_1,v_2,"",v_2);

end

我的目的是当cost_center表插入数据时,office表也会插入相应数据,cost_center表有一个主键id,我执行

insert into cost_center(code,name,parent_code,is_root,is_sum_cost_center,is_for_profit,dist_level,groups,parent_name,has_children,cost_type_id)values('6666','王八蛋','','','','',0,'','','',null)时报错

Category Timestamp Duration Message Line Position

Error 2012-9-27 22:44:24 0:00:00.000 - MySQL Database Error: Incorrect integer value: '' for column 'cost_center_id' at row 1 17 0

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值