我见过与我类似的问题,但似乎没有什么完全适合这种情况。
我有 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$$
根据我在其他地方读到的内容,我的选项似乎是在重复密钥更新或插入忽略,这两个我似乎都无法工作,我也找不到涉及插入、选择、来自和何处的示例。
我错过了什么?
编辑:我可以让它插入记录,但根据我的尝试方式,我总是得到“重复的 id”错误,或者它不插入记录。