Вопрос

Когда я пытаюсь запустить «INSERT IGNORE ...» в MYSQL, чтобы добавить только одну переменную в таблицу из нескольких параметров, после первой вставки она отказывается работать.Пишет: «Вставленные строки:0» и не вставляет мое новое значение в базу данных.Я считаю, что это связано с тем, что уже существует запись со значением «ничего», а MYSQL не позволяет дублировать пустое поле.Это кажется странным поведением (пока две вставки не совсем одинаковы), поэтому мне интересно, есть ли способ избежать этого.

Спасибо за любую помощь!

Это было полезно?

Решение

Два INSERT не обязательно должны быть абсолютно одинаковыми, они просто должны быть одинаковыми для столбцов первичного ключа.

INSERT IGNORE будет игнорировать вставку, если уже существует строка с тем же первичным ключом.Если ты это сделал INSERT вместо INSERT IGNORE, вы получите сообщение об ошибке (дубликат первичного ключа).

Если вы хотите вместо этого обновить существующую строку, вы можете использовать REPLACE.

В любом случае для каждого первичного ключа может быть только одна строка.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top