Обновите еще INSERT в MySQL - PullRequest
       5

Обновите еще INSERT в MySQL

0 голосов
/ 14 сентября 2018

Я тестировал этот код:

UPDATE books SET price='20000' WHERE user_id='2'
IF ROW_COUNT()=0
INSERT INTO store_books(name,user_id) VALUES ('test1','2')

Я обнаружил следующую ошибку.

ошибка: в синтаксисе SQL имеется ошибка;проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса для использования рядом с 'IF ROW_COUNT () = 0 INSERT INTO store_books (name, user_id) VALUES (' test1 ',' 2 ')' в строке 2

Есть ли какое-нибудь решение для решения этой проблемы?

Я не хочу использовать INSERT INTO ... ON DUPLICATE KEY UPDATE (потому что у меня есть несколько ключей в моей основной таблице).

Приведенный выше пример - это пробная версия для поиска нового пути.

Шаблон, который я хочу: Обновить (если существует) ИЛИ Вставить.

1 Ответ

0 голосов
/ 14 сентября 2018

Две вещи:

  1. INSERT ... ON DUPLICATE KEY UPDATE ... - безусловно, лучший способ сделать то, что вы хотите сделать. Если вы этого не сделаете, вам придется использовать транзакцию базы данных, чтобы убедиться, что вы поддерживаете целостность для нужной операции.
  2. MySQL (в отличие, скажем, от сервера MS SQL) не допускает условного выполнения запросов, кроме как в хранимых процедурах. Прочитай это. Если условно в SQL Script для Mysql
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...