我有一张桌子:
table votes (
id,
user,
email,
address,
primary key(id),
);
现在我想让列用户,电子邮件,地址唯一(一起)。
如何在MySql中做到这一点?
当然这个例子只是…一个例子。所以请不要担心语义。
我有一张桌子:
table votes (
id,
user,
email,
address,
primary key(id),
);
现在我想让列用户,电子邮件,地址唯一(一起)。
如何在MySql中做到这一点?
当然这个例子只是…一个例子。所以请不要担心语义。
当前回答
我是这样做的:
CREATE UNIQUE INDEX index_name ON TableName (Column1, Column2, Column3);
我对唯一index_name的约定是TableName_Column1_Column2_Column3_uindex。
其他回答
你试过这个吗?
UNIQUE KEY `thekey` (`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 `my_uniq_id` (`id_box_elements`,`id_router`)
);
UNIQUE KEY就像预期的那样工作,它允许id_box_elements和id_router的多个NULL行。
我正在运行MySQL 5.1.42,所以上面讨论的问题可能有一些更新。幸运的是,它起作用了,希望它能一直保持下去。
你可以通过phpMyAdmin添加多列唯一索引。(我在4.0.4版本中进行了测试)
导航到目标表的结构页。向其中一列添加唯一索引。展开结构页底部的Indexes列表,以查看刚刚添加的惟一索引。单击编辑图标,在下面的对话框中,您可以向该唯一索引添加其他列。
我是这样做的:
CREATE UNIQUE INDEX index_name ON TableName (Column1, Column2, Column3);
我对唯一index_name的约定是TableName_Column1_Column2_Column3_uindex。
这适用于mysql 5.5.32版本
ALTER TABLE `tablename` ADD UNIQUE (`column1` ,`column2`);