我有一张桌子:
table votes (
id,
user,
email,
address,
primary key(id),
);
现在我想使列用户,电子邮件,地址唯一(一起)。
我如何在 MySql 中执行此操作?
ALTER TABLE `votes` ADD UNIQUE `unique_index`(`user`, `email`, `address`);
我有一个 MySQL 表:
CREATE TABLE `content_html` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_box_elements` int(11) DEFAULT NULL,
`id_router` int(11) DEFAULT NULL,
`content` mediumtext COLLATE utf8_czech_ci NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id_box_elements` (`id_box_elements`,`id_router`)
);
并且 UNIQUE KEY 的工作方式与预期的一样,它允许 id_box_elements 和 id_router 的多个 NULL 行。
我正在运行 MySQL 5.1.42,所以可能在上面讨论的问题上有一些更新。幸运的是它有效,希望它能保持这种状态。
如果行中有 NULL 值,则多列唯一索引在 MySQL 中不起作用,因为 MySQL 将 NULL 视为唯一值,并且至少当前没有逻辑可以在多列索引中解决它。是的,这种行为是疯狂的,因为它限制了很多合法的多列索引应用程序,但它就是这样...... 到目前为止,这是一个在 MySQL 上标记为 “无法修复” 的错误错误轨道...