我如何为MySQL中的多列指定唯一约束?
我有一张桌子:
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上被标记为“不会修复”的bug错误轨道...
链接地址: http://www.djcxy.com/p/93681.html上一篇: How do I specify unique constraint for multiple columns in MySQL?
下一篇: mysql: works ok in console, in php will not access data