2

IF EXISTS は MySQL でサポートされていないため、MySQL で次のような疑似処理を行うための構文を考えるのに苦労しています。

IF ((select count(*) from table where col1='var1' AND col2='var2' AND col3='var3' AND col4='var4' AND col5='var5')>0) then
    combination of vars exist in record - do a thing;
ELSE
    combination of vars does not exist in record - insert record;
END IF;

CASE がこれに適していると考えるべきでしたが、私の人生では、正しい構文を考えることができません。一意のインデックスを使用しますが、すべての列で重複を許可する必要があります。一意にする必要があるのは、フィールド自体ではなく、すべての列の一致する組み合わせのみです。

すべての列で複合キーを使用すると重複挿入を回避できると言われていますが、収集したものから、別の挿入を使用する必要があります。

短いバージョン:MySQL では、指定された正確な列の一致が既存の行に見つからない場合にのみ、新しい行を挿入する方法を教えてください。

アドバイスや提案をいただければ幸いです。

4

1 に答える 1