navicat for mysql怎样为属性添加唯一性

navicat for mysql怎样为属性添加唯一性,第1张

在添加或变更表结构时,把id字段设置为整型,下面的选项就会出现auto

increment的选择框,勾选中就可以了.

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`)

www.2cto.com

)

engine=innodb

auto_increment=1018

default

charset=gbk

2.给已经建好的表加上唯一性约束

alter

table

`t_user`

add

unique(`username`)

mysql主键索引和唯一索引

1.主键一定是唯一性索引,唯一性索引并不一定就是主键;

2.一个表中可以有多个唯一性索引,但只能有一个主键;

3.主键列不允许空值,而唯一性索引列允许空值。

你用那个图形界面的软件,来加就可以了,应该在索引那一栏里面,自己写语句修改表,弄不好会出错的,还麻烦。

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

唯一键约束是通过参考索引实施的,如果插入的值均为NULL,则根据索引的原理,全NULL值不被记录在索引上,所以插入全NULL值时,可以有重复的,而其他的则不能插入重复值。

你可以自己实验一下是否允许插入重复空值。

参考地址:http://blog.csdn.net/yaoxy/archive/2009/07/16/4353115.aspx


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存