Общие > Базы данных
Проблема с Unique key. Никак не могу решить. Уже озверел. Приглашаю желающих озвереть
(1/1)
Fluke:
Имеется скрипт следующего содержания:
#!/usr/bin/perl -w
use DBI;
$dbh = DBI->connect("DBI:mysql:база", \'пользователь\', \'пароль\') or die $DBI::errstr;
$dbh->do("DROP TABLE IF EXISTS dictionary");
$dbh->do(qq|
CREATE TABLE IF NOT EXISTS dictionary
(definition VARCHAR(80),
description TEXT,
UNIQUE(definition))
|);
$sth = $dbh->prepare("INSERT INTO dictionary VALUES(?,?)") or die "$dbh->errstr()\\n";
$sth->execute(\'КОДЕКС\',\'FIRST\');
$sth->execute(\'ИНДЕКС\',\'SECOND\');
$dbh->disconnect();
exit(0);
Вставка первого значения происходить нормально, а для второго выдает ошибку, а именно Duplicate value on key 1, т.е. выходит, что с точки зрения MySQL значения КОДЕКС и ИНДЕКС одинаковые? Проверял и в Виндах и в Юниксе - везде этот скрипт не работает. Если кто желает проверьте. И если кто может - объясните в чем проблема.
С уважением.:confused:
AliMamed:
у меня все работает. правда кодировка у меня стоит вин1251, а не латин1. может в кодировке грабли?
Fluke:
А что предлагаешь сделать?
Прописать файл my.cnf?
AliMamed:
для начала надо выяснить действительно ли это связано с кодировкой - посмотри какая кодировка выставлена там где не работает
Fluke:
Вот что дал show variables по поводу кодировок
| character_set | latin1 |
| character_sets | latin1 big5 czech euc_kr gb2312 gbk sjis tis620 ujis dec8 dos german1 hp8 koi8_ru latin2 swe7 usa7 cp1251 danish hebrew win1251 estonia hungarian koi8_ukr win1251ukr greek win1250 croat cp1257 latin5 |
Навигация
Перейти к полной версии