我有一个表格:
table votes (
id,
user,
email,
address,
primary key(id),
);
现在,我想让列 user,email,address (三个一起)成为唯一的。
我该如何在MySQL中实现这一点?
当然,这只是一个示例,请不要担心语义。
我有一个表格:
table votes (
id,
user,
email,
address,
primary key(id),
);
现在,我想让列 user,email,address (三个一起)成为唯一的。
我该如何在MySQL中实现这一点?
当然,这只是一个示例,请不要担心语义。
添加唯一索引需要以下内容:
1)表名
2)索引名称
3)要添加索引的列
ALTER TABLE `tablename`
ADD UNIQUE index-name
(`column1` ,`column2`,`column3`,...,`columnN`);
ALTER TABLE `votes`ADD
UNIQUE <votesuniqueindex>;(`user` ,`email`,`address`);
如果您想避免未来出现重复,请创建另一列,例如id2。
UPDATE tablename SET id2 = id;
alter table tablename add unique index(columnname, id2);
首先去除现有的重复项
delete a from votes as a, votes as b where a.id < b.id
and a.user <=> b.user and a.email <=> b.email
and a.address <=> b.address;
然后添加唯一约束
ALTER TABLE votes ADD UNIQUE unique_index(user, email, address);
使用以下代码验证约束条件
SHOW CREATE TABLE votes;
对于PostgreSQL... 使用索引时它对我不起作用,给了我一个错误,所以我做了这个:
alter table table_name
add unique(column_name_1,column_name_2);
PostgreSQL为唯一索引提供了自己的名称。如果需要更改名称,我想您可以在表选项中更改索引的名称...