好吧,我已经在互联网上找了很多地方的
mysql错误#1442的原因说
Can’t update table ‘unlucky_table’ in stored function/trigger because
it is already used by statement which invoked this stored
function/trigger
有人说这是mysql中的一个错误或它没有提供的功能.
现在我无法理解为什么这是递归的.我有一个案例,其中我有2个表table1和table2,我运行一个SQL查询作为
update table1 set avail = 0 where id in (select id from table2 where duration < now() - interval 2 hour);
现在我在table1上有一个更新后的触发器
CREATE TRIGGER trig_table1 AFTER UPDATE ON table1
FOR EACH ROW begin
if old.avail=1 and new.avail=0 then
delete from table2 where id=new.id;
end if;
现在,当我执行更新查询时,我得到1442错误.
在这种情况下递归是什么?
is this error a lack of feature in mysql?
OR
does this have to do with how mysql executes queries?
OR
is there something logically wrong with executing such queries?