私と同様の質問を見てきましたが、シナリオに正確に適合するものはないようです。
私は 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の他の場所で読んだことから、私のオプションはON DUPLICATE KEY UPDATEまたはINSERT IGNOREのようですが、どちらも機能していないように見えます.INSERT、SELECT、FROM、およびWHEREがすべて含まれている例を見つけることもできません.
私は何が欠けていますか?
編集:レコードを挿入することはできますが、試した方法によっては、常に「重複ID」エラーが発生するか、レコードが挿入されません。