在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 = 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做验证账号是否重复的效果,很多网站都是这么干的

mysql>CREATE TABLE DIR_TAB (

-> DIR_ID INT NOT NULL AUTO_INCREMENT,

-> P_ID INT,

-> DIR_NAME VARCHAR(50) NOT NULL,

-> PRIMARY KEY (DIR_ID)) ENGINE = MYISAM

->ROW_FORMAT = DEFAULT

Query OK, 0 rows affected (0.05 sec)

建表的时候, 那个字段是 PRIMARY KEY 就相当于 那个字段 唯一 且 必须输入,不能为空.

如果可以为空的话, 那么建表的时候, 字段上面加个 unique 的限制.


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

原文地址: https://outofmemory.cn/zaji/5913903.html

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

发表评论

登录后才能评论

评论列表(0条)

保存