Как мне использовать INSERT ... ON DUPLICATE KEY UPDATE? - PullRequest
0 голосов
/ 09 апреля 2019

Состояние проблемы

Помимо 1-го столбца на сервере MySQL, который является PK и auto_increment, столбец " C " - это STRING / VARCHAR.Как использовать INSERT ... ON DUPLICATE KEY UPDATE на столбце " C ".

Должен ли я также установить col " C " как UNIQUE?

Пример

Предположим, что моя таблица на сервере MySQL выглядит примерно так ...

---------------------------
|ID(PK)| A | B | C | D | E |
+------+---+---+---+---+---+
|   1  |   |   |   |   |   |
|   2  |   |   |   |   |   |
|   3  |   |   |   |   |   |
---------------------------

Что я ожидаю

Дублируемый ввод должен игнорироваться сервером MySQL.

Могу ли я также отправить всплывающее окно с предупреждением / сессией, если дубликат был вставлен на сервер MySQL как «Этот запрос уже существует.» ?

1 Ответ

0 голосов
/ 09 апреля 2019

Столбец C должен быть установлен в NOT NULL, UNIQUE, тогда SQL вернет ошибку при попытке вставки дублированного значения.Вы можете обработать эту ошибку в своем бэкэнд-коде.Или вы можете обработать и изменить дублирующееся значение с помощью предложения «ON DUPLICATE KEY UPDATE»:

INSERT INTO t1 (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE c=c+1;
...