2012-12-04 108 views
0

我有兩個表名:registeredList & deregisteredlist。現在,當用戶從「registeredlist」表中註銷時,觸發器將其信息更新爲註銷表並從註冊表中刪除該記錄。在我的下面proc我可以正確更新它,但不能從註冊表中刪除用戶。我PROC:MYSQL存儲過程:如何刪除剛更新的記錄

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 ; 

在此先感謝。

回答

2

我認爲,所有你需要的是在DELETE語句來更改WHERE。 它應該是這樣的:

DELETE from registeredlist where id=old.id; // (or new.id cause in this case old.id is equal to new.id) 

...因爲你想匹配它id列。

UPDATE:

另一種可能性是: - 創建後deregisteredlist INSERT觸發器將做registeredlist中刪除。那樣你不應該得到那個錯誤。

+0

謝謝。我用它但更新註冊表列表時出錯:錯誤:無法更新存儲的函數/觸發器中的表'registeredlist',因爲它已被調用此存儲的函數/觸發器的語句使用。 – riad

+0

我已經更新了我的答案,請檢查它是否適用於您。 – Zagor23

0

試試這個::

DELETE from registeredlist order by updateddat desc limit 1; 
相關問題