Вставить запись или обновить если совпали значения в 2-х полях

MySQL sql

БД Mysql.
Таблица имеет поля (все поля с неуникальными значениями):
id_tov info price data

Когда вставляю данные мне нужно обновить запись, если данные по полям id_tov и data совпадают с уже имеющимися или добавить новую запись если они не совпадают или совпадение только по одному полю.

Т.е. например таблица имеет вид:
id_tov info price data
5 пр 12 11.06
3 ап 18 12.08
2 ип 10 19.08

Я вставляю данные:
3 ги 15 12.08
и у меня обновляется 2-я запись.

А если например вставляю
3 ги 15 15.08
или
7 ро 19 18.08
то добавляется новая запись.

Помогите составить SQL-запрос для таких случаев. Это что-то похоже на INSERT ... ON DUPLICATE KEY UPDATE только не для полей с уникальными ключами.
Ответы:
Создайте составной первичный ключ по нужным полям.
>все поля с неуникальными значениями
это вообще ад какой-то.


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.