0
我試圖從table2複製一個值到table1與觸發器之前,表1被插入一個數據,我遇到的問題是,每當我插入一個新行into table1我得到一個錯誤,說該列不能爲空,在我的情況下,該列是彩色的。 僅供參考表1中有一個名爲「色」以及表2從一個表到另一個mysql的複製值給我錯誤
列這是我的代碼有
CREATE
TRIGGER `some_trigger` BEFORE INSERT ON `table1`
FOR EACH ROW BEGIN
SET new.color =
(
SELECT table2.color
FROM table1
JOIN table2 ON table1.aforeignkeycolumn = table2.aprimarykeycolumn
WHERE table1.id = new.id --this should be the new row
);
END;
如果我有這樣它會工作,但我需要得到的標識行多數民衆贊成把它插入到表1
CREATE
TRIGGER `some_trigger` BEFORE INSERT ON `table1`
FOR EACH ROW BEGIN
SET new.color =
(
SELECT table2.color
FROM table1
JOIN table2 ON table1.aforeignkeycolumn = table2.aprimarykeycolumn
WHERE table1.id = 10
);
END;
任何幫助表示讚賞
我收到此錯誤。 「更新一個新行是不允許在後觸發」 – user3768541 2014-10-30 16:48:17
我認爲這就是爲什麼我使用'之前插入'我只需要知道即將插入的ID' – user3768541 2014-10-30 17:24:35
爲什麼你把值放在表中而不是在需要時動態地查看它? – 2014-10-30 21:55:17