1. 程式人生 > 實用技巧 >觸發器,你是否在刪除時出現500,有的刪除成功,有的刪除就出現500。

觸發器,你是否在刪除時出現500,有的刪除成功,有的刪除就出現500。

原因:刪除成功的是沒有其它表對其的外來鍵引用,所以才能順利地刪除。而觸發器,就是當某個表進行insert delete update前或後開始執行,而具體是什麼,那就要自己去寫了。

講解:請看下面的1、2、3、

DELIMITER $$   #1、替換結束標記為$$,沒看到下面用到了$$

CREATE
TRIGGER `uplog`.`logIfDel` BEFORE DELETE
ON LOG
FOR EACH ROW BEGIN   #2、建立一個LOG(文章表)表觸發器,當該表每一條記錄被刪除【delete】後【BEFORE】執行下面的3(這裡有兩條語句或說comment評論表與point_log點贊記錄表都依賴文章表的log_id的作為其外來鍵)
DELETE FROM COMMENT WHERE log_id=old.log_id; #3、在觸發器中會在記憶體中生成有兩種表,old表與new表,old.log_id就是被刪除的文章那條記錄對應的log_id,然後刪除評論表與點贊記錄表中對應的記錄,這樣我們才能順序得刪除log文章表中的記錄(因為去掉了其它表對其的外來鍵引用)。 DELETE FROM point_log WHERE log_id=old.log_id; END$$ DELIMITER ;