REPLACE говорит duplicate key 1.

  • Автор темы Автор темы WP
  • Дата начала Дата начала

WP

^_^
REPLACE говорит duplicate key 1.

Почему так? В таблице 3 ляма записей, id primary key auto_increment, url unique key.

Вообще, по здравому смыслу REPLACE не может давать duplicate error т.к. он в этом случае делает UPDATE.
 
У вас два уникальных ключа. REPLACE идет по одному, а на втором, видимо, происходит duplicate error.
 
Не мог бы воздержаться от ответов? Все твои сообщения что я видел - бесполезны и мусорны.
 
WP
случайно не используешь что-то типа col_name = col_name + 1?
 
WP
Извиняюсь за тупое предположение. Но...

На DELETE права погрантованны?
 
Нет, только статические строки и int'ы.

-~{}~ 06.11.07 09:27:

Pigmeich
Очень прошу, сгинь.
 
Вообще, по здравому смыслу REPLACE не может давать duplicate error т.к. он в этом случае делает UPDATE.

пипец... ссылку на место в мануале, где написано, что он в этом случае делает UPDATE
 
REPLACE works exactly like INSERT, except that if an old row in the table has the same value as a new row for a PRIMARY KEY or a UNIQUE index, the old row is deleted before the new row is inserted

В моем случае разницы нет.
 
эээ.. ну может покажешь описание таблицы, данные и пример запроса, воспроизводящий ошибку?
 
Увы, таблица 4 млн. записей...

id int(10) UNSIGNED auto_increment
url varchar(255) utf8_general_ci (unique key)
 
а покажи show create table целиком, запрос целиком
и версию
 
Как из вот этого:

REPLACE works exactly like INSERT, except that if an old row in the table has the same value as a new row for a PRIMARY KEY or a UNIQUE index, the old row is deleted before the new row is inserted

следует вот это:

Вообще, по здравому смыслу REPLACE не может давать duplicate error т.к. он в этом случае делает UPDATE.
 
Очень интересно. Надеюсь автор найдёт причину и поделится ею с народом.

Судя по описанию в таблице такие есть 2 уникальных индекса, (т.к. primary это уникальный индекс) но я всегда думал, что для replace это не является ограничением. Неужели в этом дело?
 
ONK
Мне кажется никакой проблемы там нет. Скорее всего автор просто упускает какую-то мелочь.
 
Сверху