MySQL и дублирование первичного ключа

210
26 ноября 2016, 20:13

Здрафствуйте. У меня такой вопрос. Есть таблица с полями id и value. Поле id - NOT NULL PRIMARY KEY, AUTO_INCREMENT.

1) Можно ли как-нибудь сказать MySQL чтобы при добавлении новой строки с повторяющимся id он автоматически обновлял уже существующую строку.

2) То же самое, но когда первичным ключом являются сразу несколько полей в совокупности.

Answer 1

Используйте конструкцию INSERT ... ON DUPLICATE KEY UPDATE:

INSERT INTO table (id,value) VALUES (1,2)
ON DUPLICATE KEY UPDATE value = VALUES(value);

см. документацию

READ ALSO
JOINы в MySQL специфика применения

JOINы в MySQL специфика применения

ЗдравствуйтеСтолкнулся с вопросом, на который не совсем понимаю ответ

333
Что значит “SELECT NULL”?

Что значит “SELECT NULL”?

Что значит выражение MySQL SELECT NULL FROM table_name? Как я поняла, оно часто используется в сочетании с IF EXISTS или IF NOT EXISTS, например:

209
MySQL триггеры: Как узнать название таблицы и поля, которое обновили/удалили, за счет чего отработал триггер

MySQL триггеры: Как узнать название таблицы и поля, которое обновили/удалили, за счет чего отработал триггер

Задача в следующем: при обновлении записи таблицы нужно создать триггер, который добавит в таблицу изменений пользователя, название таблицы,...

223
Могут ли поля разных таблиц иметь одинаковые названия в MySQL?

Могут ли поля разных таблиц иметь одинаковые названия в MySQL?

ЗдравствуйтеВопрос сформулирован в заголовке

249