mysql触发器问题

挨踢直男 2013-08-21 04:19:25
我在一个表上创建一个insert触发器, 这个触发器用于修改表自身上某个字段的值, 这样是不是不可以?或者有什么办法解决

//报错
Can't update table 'table_name' in stored function/trigger because it is already used by statement which invoked this stored function/trigger
...全文
111 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2013-08-21
  • 打赏
  • 举报
回复
MYSQL的触发器必须各写各的,无法合并。
wwwwb 2013-08-21
  • 打赏
  • 举报
回复
不能,分别写
挨踢直男 2013-08-21
  • 打赏
  • 举报
回复
引用 3 楼 wwwwb 的回复:
drop trigger if EXISTS t_goods_insert; create trigger t_goods_insert before insert on goods FOR EACH ROW BEGIN set new.zhekou = if( new.promotions_price, new.promotions_price / new.price, 1 ); END
顺便问一下, mysql能不能触发器类型同时是 insert,update的
wwwwb 2013-08-21
  • 打赏
  • 举报
回复
drop trigger if EXISTS t_goods_insert; create trigger t_goods_insert before insert on goods FOR EACH ROW BEGIN set new.zhekou = if( new.promotions_price, new.promotions_price / new.price, 1 ); END
挨踢直男 2013-08-21
  • 打赏
  • 举报
回复
引用 1 楼 wwwwb 的回复:
你的代码?不能对本表进行操作
 drop trigger if EXISTS  t_goods_insert; 
 create  trigger t_goods_insert  before insert on goods
 FOR EACH ROW
 BEGIN
 	 update goods 
 		 set zhekou = if( new.promotions_price, new.promotions_price / new.price, 1 )
 		 where goods_id = new.goods_id;
 END
这个样子
wwwwb 2013-08-21
  • 打赏
  • 举报
回复
你的代码?不能对本表进行操作

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧