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

WP

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

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

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

vasa_c

Новичок
У вас два уникальных ключа. REPLACE идет по одному, а на втором, видимо, происходит duplicate error.
 

WP

^_^
Не мог бы воздержаться от ответов? Все твои сообщения что я видел - бесполезны и мусорны.
 

ran

Новичок
WP
случайно не используешь что-то типа col_name = col_name + 1?
 

Pigmeich

Новичок
WP
Извиняюсь за тупое предположение. Но...

На DELETE права погрантованны?
 

WP

^_^
Нет, только статические строки и int'ы.

-~{}~ 06.11.07 09:27:

Pigmeich
Очень прошу, сгинь.
 

Андрейка

Senior pomidor developer
Вообще, по здравому смыслу REPLACE не может давать duplicate error т.к. он в этом случае делает UPDATE.

пипец... ссылку на место в мануале, где написано, что он в этом случае делает UPDATE
 

WP

^_^
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

В моем случае разницы нет.
 

Андрейка

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

WP

^_^
Увы, таблица 4 млн. записей...

id int(10) UNSIGNED auto_increment
url varchar(255) utf8_general_ci (unique key)
 

fixxxer

К.О.
Партнер клуба
а покажи show create table целиком, запрос целиком
и версию
 

sal

Новичок
Как из вот этого:

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.
 

ONK

Пассивист PHPСluba
Очень интересно. Надеюсь автор найдёт причину и поделится ею с народом.

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

sal

Новичок
ONK
Мне кажется никакой проблемы там нет. Скорее всего автор просто упускает какую-то мелочь.
 
Сверху