2

その主キーが既に含まれているテーブルにデータを挿入しようとすると、明らかに失敗します。

挿入に失敗したデータが既にテーブルにあるものと一致するかどうかを確認する簡単な方法はありますか? (つまり、非主キー フィールドが、その主キーに対して既に存在するものと同じ場合)

理想的には、1 つのエラーが発生するのではなく、既に使用されている主キーを挿入しようとしたときに 2 つの異なるエラーが発生するようにしたいと考えています。

- Error1: primary key constraint broken - data being inserted is already in table
- Error2: primary key constraint broken - attempt to enter different data for existing primary key
4

2 に答える 2

2

これで試してみてください:

INSERT INTO yourTable (field1, field2, field3...)
SELECT yourValue1, yourValue2, yourValue3...
FROM dual
WHERE NOT EXISTS (SELECT * 
                  FROM yourTable 
                  WHERE field1 = yourValue1
                  AND field2 = yourValue2
                  AND field3 = yourValue3...);

このクエリはフィールドをチェックし、レコードがまだ存在しない場合にのみ挿入します。

于 2013-09-05T07:07:13.057 に答える