[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Дубли в уникальном поле
Владимир55
Данные для создания файла sitemap хранятся в специальной таблице. Поскольку адреса страниц не могут быть одинаковыми, при создании таблицы соответсвующее поле сделано уникальным. Вцелом код создания таблицы имеет вот такой вид:
		$query = "CREATE TABLE sitemap
(
id INT (11) NOT NULL AUTO_INCREMENT,
loc VARCHAR (110),
lastmod CHAR (30),
PRIMARY KEY(id)
) ENGINE=MyISAM CHARACTER SET utf8";
mysql_query($query);

// Создание UNIQUE
$query = "ALTER TABLE sitemap ADD UNIQUE (loc)";
mysql_query($query);


При отладке скрипта случилось так, что через INSERT INTO в таблицу делалось несколько полностью одинаковых записей, причем все они осуществились успешно. В итоге в уникальном поле loc имеются одинаковые записи.
Как такое возможно?
И в чем же тогда его уникальность?

Или надо на сервере сделать какую-то настройку, чтобы в уникальное поле дубли не писались?

А может быть, уникальность служит только для оптимизации поиска по базе и при записи MySQL её вообще не отслеживает?
linker
А ты уверен, что запрос на добавление уникального ключа к полю loc выполнился валидно и что это поле действительно уникально?

_____________
Gear Framework
Gear Framework на Github
Владимир55
Да фиг его знает...

Как проверить? При записи сообщения об ошибках не было.
linker
Этот PRIMARY индекс стоит у тебя на поле id, а для поля loc нет никакого индекса, даже уникального.

_____________
Gear Framework
Gear Framework на Github
Владимир55
Точно!

Почему-то сервер не отработал. Даже странно...

Спасибо, дело прояснилось!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.