Создать если нет или обновить если есть

241
12 октября 2017, 10:20

Есть таблица. Мне нужно вставить в неё строку, если её нет или же обновить её если запись уже существует.

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

Answer 1

Как и написал товарищ в комментарии - Вам поможет on duplicate update. А именно:

INSERT INTO `table` (`id`,`a`,`b`,`c`) VALUES (?,?,?) ON DUPLICATE KEY UPDATE `a` = ?, `b` = ? `c` = ?;

Эта "штука" срабатывает если по вставляемым полям есть совпадения в уникальном ключе. Также по первой ссылке посмотрите еще синтаксис с использованием VALUES(column) в update-части.

Возможно в какой-то момент возникнет ситуация, когда нужно будет вставить значение "а если с таким ключом уже есть - то ничего не делать" - тогда нужно будет использовать вместо этого INSERT IGNORE INTO ...

READ ALSO
Как создать свой движок сайта [требует правки]

Как создать свой движок сайта [требует правки]

Я хочу создать свой сайт на собственном движке на PHP и MySQLКак мне организовать всё это, чтобы было удобно работать, не требовалось писать основной...

190
Подключение к MySQL c помощью DataSource [требует правки]

Подключение к MySQL c помощью DataSource [требует правки]

кто может скинуть простейший пример,с подключением к MySQL c помощью DataSourceПросто класс с подключением,без дао и энтити

244
Как сохранять состояние RecyclerView?

Как сохранять состояние RecyclerView?

На данный момент приложение сохраняет состояние RecyclerView при выходе на рабочий стол через клавишу HomeОднако, если я уйду на другой фрагмент,...

243
Вызвать метод класса Activity из ViewHolder

Вызвать метод класса Activity из ViewHolder

Имеем ReciclerView, на экране отображается списокСписок обновляется каждые 5 сек

223