程式設計MySQL 觸發器以將資料插入另一個表
當資料庫表中發生某些事件時,MySQL 觸發器允許執行預定義的操作。在本例中,目標是建立一個觸發器,當將行插入到特定表中時,該觸發器將行插入到另一個表中。
如何取得最後插入行的 ID
要擷取最後插入行的 ID,需要在觸發器中使用 LAST_INSERT_ID() 函數。此函數傳回最近插入的行的 ID。
儲存上次插入行的資料以供INSERT 語句使用
正確儲存上次插入的資料註解行,它可以儲存在觸發器內的局部變數中。例如,如果使用者ID 欄位名為user_id,評論文字列名為comment_text,則可以使用以下語法:
DECLARE user_id INTEGER; DECLARE comment_text VARCHAR(255); SET user_id = NEW.user_id; SET comment_text = NEW.comment_text;
使用預存程序
觸發器對於自動執行操作以回應某些事件很有用,但它們的功能有限且可能不適合複雜的操作。在這種情況下,建議結合使用觸發器和預存程序。
觸發器結構
觸發器的基本結構如下圖所示:
DELIMITER $$ CREATE TRIGGER comments_after_ins_trig AFTER INSERT ON comments FOR EACH ROW BEGIN -- Grab the ID of the last inserted row SET @last_inserted_id = LAST_INSERT_ID(); -- Store data from the last inserted row into local variables SET @user_id = NEW.user_id; SET @comment_text = NEW.comment_text; -- Perform the INSERT into the activities table INSERT INTO activities (user_id, comment_text) VALUES (@user_id, @comment_text); END; $$ DELIMITER ;
以上是如何建立 MySQL 觸發器以在 INSERT 後將資料插入另一個表中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!