我已經看到類似的問題,但沒有一個看起來完全適合這種情況。MySql觸發器在另一個表中插入一條記錄,如果id不是重複的
我有2個表格,帳單和帳戶。
如果帳單被推入帳單表並且還沒有帳戶,我想在帳戶表中創建一條記錄。
我:
...
BEFORE INSERT ON bills
FOR EACH ROW
BEGIN
INSERT INTO accounts (id, field1, field2, field3, field4)
SELECT accountID, 'value1', value2, value3, value4
FROM bills
WHERE ((SELECT LEFT(accountID, 5) = 'XXXXX' |
(SELECT LEFT(accountID, 5) = 'XXXXX' |
(SELECT LEFT(accountID, 5) = 'XXXXX' |
(SELECT LEFT(accountID, 5) = 'XXXXX' |
(SELECT LEFT(accountID, 5) = 'XXXXX')) &&
accountID NOT IN (SELECT id from accounts); ## I know this line is not right
END$$
從我的SO其他地方讀我的選擇似乎是在重複鍵更新或插入忽略,這兩者都不我似乎可以做的工作,也不是我能找到的例如INSERT,SELECT,FROM和WHERE都涉及到。
我錯過了什麼?
編輯:我可以讓它插入記錄,但取決於我如何嘗試它,我總是得到「重複ID」錯誤,或它不插入記錄。
請添加表格結構和示例數據。 – 2013-04-05 16:55:51