你用那个图形界面的软件,来加就可以了,应该在索引那一栏里面,自己写语句修改表,弄不好会出错的,还麻烦。
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 = daoqueryForDataSet(connName,"select from t_user where username= and password=",new Object[]{username,password},0,0,false);
if(dssize()==1){
//登陆成功
}else if(dssize()>1){
//冻结此账户,记录错误日志
}else{
//告知用户账号不存在或者密码错误
}
插入用户之前事先查询一下这个用户是否存在,可以用ajax做验证账号是否重复的效果,很多网站都是这么干的
自增长,即自动增长,该列不允许插入数据,根据用户设置的自增长方案进行增长,当然不存在重复,当然能保证记录是表中唯一的
如果其他列需要保证唯一,可以新建约束:
alter
table
表名
add
constraint
约束名
unique(不希望重复的列名)
ps:这个不希望重复的列,可以是一列也可以是多列合并
以serversql为例:
if exists(select from sysobjects where name='DepartmentTab')
drop table DepartmentTab
create table DepartmentTab--创建一个表
(
DepartID int primary key identity(1,1),--identity自增 ,primary key主键
DepartName nvarchar(50) unique,--unique唯一的,并且不能为空
condition int default('0') --default 默认为0
)
以上就是关于mysql已经有重复数据的字段是否可以加唯一约束,该怎么加。是否对其有影响全部的内容,包括:mysql已经有重复数据的字段是否可以加唯一约束,该怎么加。是否对其有影响、数据库怎么设置非主键以外的为唯一呢、在数据库中表的字段如何创建数据库中唯一的标识id等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)