INSERT IGNORE Вставка 0 строк - PullRequest
       7

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

0 голосов
/ 09 января 2010

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

Спасибо за любую гепатиту!

1 Ответ

2 голосов
/ 09 января 2010

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

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

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

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

...