|
Тема |
MySQL -> UNIQUE (кирилица) |
|
Автор |
Dakota (erotoman) |
|
Публикувано | 17.10.03 12:08 |
|
|
Случват ми се разни странни (за мен) неща днес.
Имам една табличка USER вътре с един primary key (id), един unique (username) и един обикновен index (other_id). Реших да променя обикновения key (other_id) на unique (other_id) - типът е bigint unsigned:
ALTER TABLE USER DROP INDEX OTHER_ID, ADD UNIQUE(OTHER_ID);
И MySQL изпищя:
ERROR 1062: Duplicate entry 'иванов' for key 2
Учудих се, защото знам, че other_id ми е bigint, и направих запитване за '%иванов%' (да знам, че така не използва индекса), и получих 2 резултата:
един username='Иванов' и един username='иванов'. При промяна на втория, пак изпищя при следващото такова разминаване на главни и малки кирилски букви. И така, въпросите ми са два:
1. Защо почва да прави проверка за key 2, при положение, че аз пипам key 3.
2. И по-важното...защо когато съм INSERT IGNORE-вал в таблицата, заявката е минала успешно без да се разсърди, че има duplication, а сега изведнъж реши, че главни и малки кирилски букви са едно и също?!
П.П.: Всъщност на първия въпрос и сам мога да си отговоря, но при втория положението не е такова.
Everything louder than everything else...Редактирано от Dakota на 17.10.03 12:16.
|
| |
|
|
|