0

2 つのテーブル名があります: 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 ;

前もって感謝します。

4

2 に答える 2

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別の可能性は次のとおりです。 -で DELETE を実行する AFTER INSERT TRIGGER を作成しregisteredlistます。そうすれば、そのエラーは発生しません。

于 2012-12-04T13:56:57.643 に答える
0

これを試して::

DELETE from registeredlist order by updateddat desc limit 1;
于 2012-12-04T13:56:32.387 に答える