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