SQL テーブルにデータを挿入する一連のクエリを実行したいのですが、特定の条件を満たすレコードがある場合に限ります。テーブルには 4 つのフィールドがあります: ( id
primary) fund_id
、、、date
price
fund_id
クエリには、date
およびの 3 つのフィールドがありますprice
。
したがって、私のクエリは次のようになります。
INSERT INTO funds (fund_id, date, price)
VALUES (23, '2013-02-12', 22.43)
WHERE NOT EXISTS (
SELECT *
FROM funds
WHERE fund_id = 23
AND date = '2013-02-12'
);
fund_id
そのため、 and に一致するレコードdate
がまだ存在しない場合にのみ、データを挿入したいと考えています。上記が正しい場合、追加の select ステートメントを毎回実行する必要があるため、これを達成するための非常に非効率的な方法だと思います。
上記を達成するためのより良い方法はありますか?
編集:明確にするために、一意のフィールドでfund_id
もありません。date
同じ Fund_id または日付を共有するレコードは存在しますが、別のレコードと同じ Fund_id と日付の両方を持つレコードはありません。