我建立了一个触发器,虽然触发器是正确的,但每次执行的时候都会报 Can't update table '借书2' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.我的触发器是这样的,有两种方法但都会在执行添加时报错,并不实现更改 展开
我建立了一个触发器,虽然触发器是正确的,但每次执行的时候都会报 Can't update table '借书2' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.我的触发器是这样的,有两种方法但都会在执行添加时报错,并不实现更改功能。①DELIMITER | CREATE TRIGGER testref AFTER INSERT ON 借书2FOR EACH ROW BEGINupdate `借书2` set `借书2`.`还书日期`=DATE_ADD(new.借出日期, INTERVAL (select 可借天数 from 可借 where id=new.id) DAY)where `借书2`.`id`=new.id;END;②DELIMITER | CREATE TRIGGER testref AFTER INSERT ON 借书2FOR EACH ROW BEGINinsert into 借书2 values (new.id, new.借出日期, DATE_ADD(new.借出日期, INTERVAL (select 可借天数 from 可借 where id=new.id) DAY));END;这两个触发器都可以成功建立,但不能被正确运行,后来我只能用两条语句来实现:insert into 借书2 values (id, new.借出日期,'');//其中的id保存在变量中update 借书2 set `还书日期`=DATE_ADD(借出日期, INTERVAL (select 可借天数 from 可借 where id=变量id) DAY) where id=变量id;希望能对你有所帮助,还有我用的数据库是mysql,可能和你当前所用的数据库不一样哦。 收起