@evilelf
Тупой, руки из жопы, кодю за зп и т.п. и т.д.

Как менее ресурсозатратно реализовать добавление или обновление?

Дано: Таблица с колонками id, user_id, meta_key, meta_val
Задача: Возникла необходимость сделать множественное добавление записей в таблицу у которых user_id==3, но если есть строка с равным meta_key, то её нужно обновить.

Предложение1: Сделать это в несколько запросов (1-ый: берём все не пустые строки по user_id, 2-ой: обновляем их если были заменены, 3-ий: добавляем новые строки, если нужно)
Предложение2: Сделать процедуру, в которую передать изменяемые значения. В процедуре сравнить и там решить update или insert.

Спасибо.
  • Вопрос задан
  • 2288 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Если user_id, meta_key - уникальная пара (UNIQUE KEY(`user_id`, `meta_key`)), то
INSERT INTO `table` (`user_id`, `meta_key`, `meta_val`)
    VALUES (:user_id, :meta_key, :meta_val)
    ON DUPLICATE KEY UPDATE `meta_val` = VALUES(`meta_val`)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы