Как сделать UPDATE, а при отсутствии записи - INSERT?

464
31 декабря 2016, 14:53

Цель такая: если запись с таким id есть, тогда делаем инкремент значения в столбце count этой строки, а если же нет, то создаём новую запись (у столбца count задан DEFAULT 0). База данных - MySQL.

Конечно, можно сделать несколько проверок и реализовать такую логику через условия в самом языке программирования, но можно ли осуществить всё это одним SQL запросом (чтобы работало быстро), или, по крайней мере, сделать как-то изящнее?

Answer 1
INSERT INTO `table` (`id`) VALUES (123456)
ON DUPLICATE KEY UPDATE `count`=`count`+1;
READ ALSO
статья про ошибки внешних ключей [требует правки]

статья про ошибки внешних ключей [требует правки]

Написал статью, в которой перечислил известные мне случаи ошибок внешних ключей, сведя их в единую таблицу для удобства диагностики

332
Удалить 1й айтем при открытии Spinner

Удалить 1й айтем при открытии Spinner

Мне нужно, чтоб при развертывании Spinner 1й пункт "Выберете

397
Сравнение дат с помощью JPA criteria API

Сравнение дат с помощью JPA criteria API

Мне нужно получить данные из базыЕсть две переменные LocalDate startDate и LocalDate endDate

515
Настройка Google Play Services в Android Studio

Настройка Google Play Services в Android Studio

Не могли бы вы описать, что нужно сделать по пунктам, чтобы подключить Google Play Services к своему приложению, а также сделать простой рейтинг участников

647