我有两个表名:registeredList& deregisteredlist。现在,当用户从“registeredlist”表中取消注册时,触发器将其信息更新为注销表并从注册表中删除该记录。在我的下面proc我可以正确更新它但不能从注册表中删除用户。我的过程:
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 ;
提前致谢。
答案 0 :(得分:2)
我认为您需要的是在WHERE
声明中更改DELETE
。
它应该是这样的:
DELETE from registeredlist where id=old.id; // (or new.id cause in this case old.id is equal to new.id)
...因为您希望将其与id
列匹配。
<强>更新强>
另一种可能性是:
- 在deregisteredlist
上创建AFTER INSERT TRIGGER,它将在registeredlist
中执行删除操作。这样你就不会得到那个错误。
答案 1 :(得分:0)
试试这个::
DELETE from registeredlist order by updateddat desc limit 1;