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 的限制.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)