mysql已经有重复数据的字段是否可以加唯一约束,该怎么加。是否对其有影响

mysql已经有重复数据的字段是否可以加唯一约束,该怎么加。是否对其有影响,第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 = 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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10189789.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存