我在的目的是在更新完表a的一个字段m后将该更新的行转移到其他的一个表中然后删除本表的这个行
代码如下
CREATE TRIGGER `removeoffline` AFTER UPDATE ON `radacct` FOR EACH ROW  if not isnull(new.acctstoptime)  then
call AcctToAcct2(new.radacctid);
end if;存储过程如下AcctToAcct2
CREATE PROCEDURE `AcctToAcct2`(id varchar(64))
BEGIN
INSERT INTO radacct2 (SELECT * FROM radacct WHERE  radacct.radacctid = id);
delete FROM radacct WHERE  radacct.radacctid = id;
END在触发的时候出现了如下的错误提示
Err] 1442 - Can't update table 'radacct' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.请问问题出在哪里呀?

解决方案 »

  1.   

    mysql语法不允许触发器内再更新本表  换种方法吧
      

  2.   

    CREATE TRIGGER `removeoffline` AFTER UPDATE ON `radacct` FOR EACH ROW  if not isnull(new.acctstoptime)  then
    call AcctToAcct2(new.radacctid);
    end if;存储过程如下AcctToAcct2
    CREATE PROCEDURE `AcctToAcct2`(id varchar(64))
    BEGIN
    INSERT INTO radacct2 (SELECT * FROM radacct WHERE  radacct.radacctid = id);
    delete FROM radacct WHERE  radacct.radacctid = id;
    END
    出现递归触发了,MYSQL不支持。