Вставка SQL в таблицу, только если запись не существует [дубликат]
На этот вопрос уже есть ответ здесь:
Проверьте, существует ли строка, в противном случае вставьте 11 ответовMySQL Условная Вставка 12 ответовЯ хочу запустить набор запросов, чтобы вставить некоторые данные в таблицу SQL, но только если встречаются записи, удовлетворяющие определенным критериям. Таблица имеет 4 поля:id
(Первичный),fund_id
, date
а такжеprice
У меня есть 3 поля в запросе:fund_id
, date
а также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
а такжеdate
не существует Если вышеприведенное верно, это кажется мне совершенно неэффективным способом достижения этой цели, поскольку каждый раз нужно запускать дополнительный оператор выбора.
Есть ли лучший способ достижения вышеуказанного?
Изменить: для уточнения ниfund_id
ниdate
являются уникальными полями; Существуют записи с одинаковым идентификатором или идентификатором fund_id, но ни одна из записей не должна иметь одинаковый идентификатор и дату fund_id.