DELIMITER $$;DROP TRIGGER `my_test`.`cfsgb1`$$create trigger `cfsgb1` AFTER INSERT on `sgb`
for each row BEGIN
set @a=new.bh;
set @d=new.name;
set @jinjzh=new.jinjia*new.sl;
set @maijzh=new.mj*new.sl;
if @d<>'' then
insert into sgb1(bh,name,jinjzongh,maijzongh)
values(@a,@d,@jinjzh,@maijzh);
end if;
if new.name='' then
delete from sgb where bh=new.bh;
end if;
END;
$$DELIMITER ;$$
for each row BEGIN
set @a=new.bh;
set @d=new.name;
set @jinjzh=new.jinjia*new.sl;
set @maijzh=new.mj*new.sl;
if @d<>'' then
insert into sgb1(bh,name,jinjzongh,maijzongh)
values(@a,@d,@jinjzh,@maijzh);
end if;
if new.name='' then
delete from sgb where bh=new.bh;
end if;
END;
$$DELIMITER ;$$
解决方案 »
- 求助:SOS:请教:手工利用navicat导入mdb到mysql时的错误数据问题
- mysql中source *.sql的方法导入数据太慢了
- 小弟新手 想问下mysql问题
- 问下删除11W的数据怎么要 30 秒
- 请问网站MYSQL数据库如何移植到其他服务器上?
- oracle SQL 语句向MYSQL迁移问题
- 在linux下如何安装mysql,如何建表呀,
- QT库访问mysql, dirver QMYSQL3 not loaded,是怎么回事??
- 怎么合并表里的内容
- 为什么我在代码里开了事务后,再调用mysql的存储过程,存储过程并不在我开启的事务里执行?
- Mysql有没有办法在插入时获得当前自增Id的函数,我有两个列用到该id?
- mysql字段接触发器
错误代码: 1442
Can't update table 'sgb' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
这是什么错误..
delete from sgb where bh=new.bh;
end if;没什么好办法,sgb'当前表已经被使用了,不能再 触发器 进行delete了。
if xxxx condition then
set new.pkcol=0;
end if;
当我插入insert into sgb(name,mj,jinjia,sl)
values('',10,10,10);象这样执行代码的时候就让他判断name里头的值为空的话我就不想让他插进去,
如果有值存在的话就执行行正常... 这样的思路要怎么写触发器
说实话你刚才写的那段代码看不懂嘿嘿..光触发器不行的也可以配合存储或者视图执行的