Задавайте вопросы, мы ответим
Вы не зашли.
Добрый вечер! Возникла проблема с добавлением информации в таблицу
REATE TABLE IF NOT EXISTS `z_type_room` (
`flag_admin` int(11) NOT NULL,
`id_firm` int(11) NOT NULL,
`id_firm_type_room` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
`id_type_room` int(11) NOT NULL,
`type_room` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
UNIQUE KEY `id_firm` (`id_firm`,`id_firm_type_room`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
При таком вот запросе
INSERT INTO `tourshow_firms`.`z_type_room` (
`flag_admin` ,
`id_firm` ,
`id_firm_type_room` ,
`id_type_room` ,
`type_room`
)
VALUES
('', '123', 'Standard', '', ''),
('', '123', 'standard', '', '')
Получаю вот такую ошибку
#1062 - Duplicate entry '123-standard' for key 'id_firm'
Неактивен
По определению таблицы комбинация полей `id_firm` и `id_firm_type_room` уникальна.
Вы пытаетесь добавить дублирующую информацию - возникает ошибка.
Какое поведение запроса вы хотите получить? Чтобы можно было добавлять дублирующую информацию или чтобы добавлялось только первое значение?
Неактивен
В томто и дело что я добавляю уникальную информацию для ключа. Поля 'id_firm' в запросе действительно совпадают, а поле 'id_firm_type_room' содержит значения "Standart" и "standard"
INSERT INTO `tourshow_firms`.`z_type_room` (
`flag_admin` ,
`id_firm` ,
`id_firm_type_room` ,
`id_type_room` ,
`type_room`
)
VALUES
('', '123', 'Standard', '', ''),
('', '123', 'standard', '', '')
Неужели для mysql поля начинающиеся с заглавной или прописной буквы являются одинаковыми?
Отредактированно elslepas (03.03.2011 08:01:47)
Неактивен
elslepas написал:
Неужели для mysql поля начинающиеся с заглавной или прописной буквы являются одинаковыми?
Ну так вы сами выбрали не чувствительное к регистру сопоставление `id_firm_type_room` varchar(200) COLLATE utf8_unicode_ci
сделайте utf8_unicode_cs
Неактивен
Большое спасибо! Правда я нигде не смог найти хоть одну кодировку с _cs. В чем дело? Я проверял на двух наших серверах и на локалке(Denwer)
Неактивен
В utf8 нет кодировки cs. Она не имеет смысла, т.к. полностью совпадает с bin.
Неактивен