INSERT IGNORE Вставка 0 строк

0

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

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

Теги:
rows
insert
ignore

1 ответ

2
Лучший ответ

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

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

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

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

  • 0
    Спасибо Тило! Я отредактировал поле, являющееся первичным ключом, и теперь оно отлично работает!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню