我有一张桌子:
table votes (
id,
user,
email,
address,
primary key(id),
);
现在我想让列用户,电子邮件,地址唯一(一起)。
如何在MySql中做到这一点?
当然这个例子只是…一个例子。所以请不要担心语义。
我有一张桌子:
table votes (
id,
user,
email,
address,
primary key(id),
);
现在我想让列用户,电子邮件,地址唯一(一起)。
如何在MySql中做到这一点?
当然这个例子只是…一个例子。所以请不要担心语义。
当前回答
这适用于mysql 5.5.32版本
ALTER TABLE `tablename` ADD UNIQUE (`column1` ,`column2`);
其他回答
这适用于mysql 5.5.32版本
ALTER TABLE `tablename` ADD UNIQUE (`column1` ,`column2`);
添加唯一索引需要:
1) table_name 2) index_name 3)要添加索引的列
ALTER TABLE `tablename`
ADD UNIQUE index-name
(`column1` ,`column2`,`column3`,...,`columnN`);
在你的情况下,我们可以创建唯一的索引如下:
ALTER TABLE `votes`ADD
UNIQUE <votesuniqueindex>;(`user` ,`email`,`address`);
如果你在mysql中创建表,请使用以下命令:
create table package_template_mapping (
mapping_id int(10) not null auto_increment ,
template_id int(10) NOT NULL ,
package_id int(10) NOT NULL ,
remark varchar(100),
primary key (mapping_id) ,
UNIQUE KEY template_fun_id (template_id , package_id)
);
我是这样做的:
CREATE UNIQUE INDEX index_name ON TableName (Column1, Column2, Column3);
我对唯一index_name的约定是TableName_Column1_Column2_Column3_uindex。
为了添加一个唯一的约束,你需要使用两个组件:
ALTER TABLE -更改表模式,
ADD UNIQUE -添加唯一约束。
然后你可以用'name'(' columnn1 ', 'column2'…)格式定义新的唯一键。
所以对于你的特定问题,你可以使用这个命令:
ALTER TABLE `votes` ADD UNIQUE `unique_index`(`user`, `email`, `address`);