0

私と同様の質問を見てきましたが、シナリオに正確に適合するものはないようです。

私は 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」エラーが発生するか、レコードが挿入されません。

4

1 に答える 1