2014-01-14 99 views
0

我創建了一個觸發器,它將會話表的最後一個記錄插入conversation_h表中,並使用插入事件之前從conversation刪除該記錄。在插入觸發器之前插入和刪除表中的數據

任何其他邏輯或代碼也是受歡迎的,但我只想實現上述使用觸發器。

DELIMITER $$ 
CREATE 
    TRIGGER `transfer_data` BEFORE INSERT 
    ON `conversation` 

    FOR EACH ROW 

BEGIN 

if (select count(*) from `conversation`) > 2 
then 

    set @mid = (select id from conversation order by id asc limit 0,1); 

insert into conversation_h select * from conversation where [email protected]; 

delete from conversation where [email protected]; 


    END IF; 

    END$$ 
DELIMITER ; 
+1

那裏真的有問題嗎?我只看到事實陳述。如果你對顯示的代碼有問題(如答案所示),那麼請在這裏發佈問題,下次在這裏 – codeling

+0

是的這個問題。 「從id = @ mid的對話中刪除」;不工作,而當我刪除這條線,然後上面的觸發器工作正常。 –

+1

再次,「不工作」不是一個適當的描述。怎麼了?有沒有錯誤信息?如果是這樣,請提及它們。這個問題似乎回答了,是嗎?只是要記住下一個問題 – codeling

回答

0

This is not possible with triggers

A(...)觸發器不能修改已被使用(讀或寫)由調用(...)觸發器的語句的表。

+0

有什麼方法可以使用觸發器從表中刪除記錄? –