MYSQL存储过程:如何删除刚更新的记录

MYSQL存储过程:如何删除刚更新的记录,mysql,stored-procedures,Mysql,Stored Procedures,我有两个表名:registeredList和deregisteredlist。现在,当用户从“registeredlist”表中注销时,触发器会将其信息更新到注销表,并从注册表中删除记录。在我下面的程序中,我可以正确地更新它,但不能从注册表中删除该用户。我的程序: DELIMITER $$ USE `abc_db`$$ DROP TRIGGER `UnsubscriberListTrigger`$$ CREATE TRIGGER `UnsubscriberListTri

我有两个表名:registeredList和deregisteredlist。现在,当用户从“registeredlist”表中注销时,触发器会将其信息更新到注销表,并从注册表中删除记录。在我下面的程序中,我可以正确地更新它,但不能从注册表中删除该用户。我的程序:

DELIMITER $$
USE `abc_db`$$
DROP TRIGGER  `UnsubscriberListTrigger`$$
CREATE        
    TRIGGER `UnsubscriberListTrigger` AFTER UPDATE ON `registeredlist` FOR EACH ROW 
    BEGIN        
     IF (old.SubscriberStatus='registered') THEN    
       INSERT INTO deregisteredlist(name,SubscriberStatus,DeRegistrationDate) 
       VALUES(old.name,'Deregistered',NOW());

       DELETE from registeredlist where old.id=new.id;/???????/I am getting problem here           
     END IF;
 END $$
DELIMITER ;
提前谢谢。

试试这个:

DELETE from registeredlist order by updateddat desc limit 1;

我想你所需要做的就是在
删除
语句中更改
WHERE
。 应该是这样的:

DELETE from registeredlist where id=old.id; // (or new.id cause in this case old.id is equal to new.id)
。。。因为您希望将其与
id
列匹配

更新:

另一种可能性是:
-在
注销列表
上创建插入后触发器,该触发器将在
注册列表
中执行删除操作。那样你就不会犯那样的错误。

谢谢。我使用了它,但在更新registeredlist表时出错:错误:无法更新存储函数/触发器中的表“registeredlist”,因为调用此存储函数/触发器的语句已经使用了它。