我無法獲得以下代碼以使用此page作爲參考以及此站點上的其他帖子。我需要創建一個觸發器,只要表A被更新,它就會在表B中插入一條記錄。下面的代碼顯示了我正在嘗試的內容;但是這會產生語法錯誤(#1064)。我還不清楚我是否需要包含'DELIMITER $$'語法。我感謝你的幫助MySQL觸發器將表A中的記錄插入表B
DELIMITER $$
CREATE TRIGGER MyTrigger
AFTER INSERT
ON TableA
FOR EACH ROW
BEGIN
INSERT INTO TableB SET
TableA_id = NEW.TableB_id,
TableA_date = NEW.TableB_date,
TableA_comment = NEW.TableB_comment;
END;
END $$
DELIMITER ;
編輯:在僞代碼上面,我是用$ TableName_ $字段名慣例,表明A列屬於表A,B列屬於表B.我應該有在我原來的問題中更加明確。有人在下面評論我在錯誤的一面有NEW指標(應在表A中),但該評論似乎已被刪除。有人可以確認嗎?感謝您的幫助
在回答您的編輯:你是說在'TableB'你*不*有一個叫做'TableA_id'列,而是要插入一行到' TableB',使得TableB.TableB_id的值等於TableA.TableA_id的值等等。 – eggyal
@eggyal TableB由TableB_id,TableB_date和TableB_comment組成;同樣對於Tabel A.對不起,我的原始問題沒有更清楚。我基本上想要在表A更新時在表B中插入相同的記錄 – Arkady
在這種情況下,您確實需要在您的INSERT語句中顛倒列名。 'SET TableB_id = NEW.TableA_id'等。 – eggyal