在MYSQL中怎样把某字段(已存在)唯一化

2024-11-27 19:43:05
推荐回答(2个)
回答(1):

你用那个图形界面的软件,来加就可以了,应该在索引那一栏里面,自己写语句修改表,弄不好会出错的,还麻烦。
1.建表时加上唯一性约束
CREATE TABLE `t_user` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(18) NOT NULL unique,
`password` varchar(18) NOT NULL,
PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=1018 DEFAULT CHARSET=gbk;
2.给已经建好的表加上唯一性约束
ALTER TABLE `t_user` ADD unique(`username`);
我机器上没有数据库,没验证这2个sql,不晓得行不行,大概是这样的吧。

有些人用程序来给数据做约束的,比如约束用户名,
DataSet ds = dao.queryForDataSet(connName,"select * from t_user where username=? and password=?",new Object[]{username,password},0,0,false);
if(ds.size()==1){
//登陆成功
}else if(ds.size()>1){
//冻结此账户,记录错误日志
}else{
//告知用户账号不存在或者密码错误
}
插入用户之前事先查询一下这个用户是否存在,可以用ajax做验证账号是否重复的效果,很多网站都是这么干的

回答(2):

删除重复的数据,可以吗?
然后设置一个唯一索引。