Здравствуйте.
Есть таблица с уникальным составным индексом из 2 полей, вот запрос для её создания:
CREATE TABLE `test` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`field1` int(11) unsigned DEFAULT NULL,
`field2` int(11) unsigned NOT NULL,
`field3` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uniq` (`field1`,`field2`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Никак не пойму, почему я могу добавлять одинаковые записи при условии, что поле field1 равен NULL. Вот пример наполнения таблицы:
INSERT INTO `test` (`id`, `field1`, `field2`, `field3`)
VALUES
(1, 1, 1, 1),
(3, 1, 2, 1),
(4, NULL, 1, 1),
(5, NULL, 1, 1),
(6, NULL, 1, 1);
Взято отсюда:
For all engines, a UNIQUE index allows multiple NULL values for columns that can contain NULL.
Т.е., по сути, разрешив вставлять в один из столбцов значения NULL вы тем самым сами сломали UNIQUE индекс.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Добрый деньЕсть у меня значит сайт, на котором имеется форма метода POST
Можно ли как-то оптимизировать запрос? Или конвертировать его в wp_queryЕсли есть что-то жутко неграмотное, укажите пожалуйста
Как выбрать строку с максимальным id где в колонке page будет poll
Доброго времени сутокКак работает позиционирование элементов в Swing относительно слоев? Как сделать так,чтобы один элемент перекрыл другой?...