Mysql设置某字段唯一
站在用户的角度思考问题,与客户深入沟通,找到商水网站设计与商水网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计、成都做网站、企业官网、英文网站、手机端网站、网站推广、国际域名空间、网页空间、企业邮箱。业务覆盖商水地区。
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`);
mysql主键索引和唯一索引
1.主键一定是唯一性索引,唯一性索引并不一定就是主键;
2.一个表中可以有多个唯一性索引,但只能有一个主键;
3.主键列不允许空值,而唯一性索引列允许空值。
采纳噢
空白字符串,和空值null是两个概念。
你的意思应该是空白字符串,这个和普通字符串对于mysql是一个意思,无法从数据库层面屏蔽。只能从业务逻辑中判断和过滤。
如果你找不到是哪个程序在做这个操作,建议你开启binlog,检查下插入的时间和用户名,然后在找到那个时间的系统日志,查下是哪个文件在操作即可。
最可能的原因就是插入方法错误。
如有这样一个表,其中字段2允许为空:
字段1 字段2 字段3
那么可以写语句:
insert into 表名( 字段1,字段2,字段3) values (1,null,1);
如果这样写,就会有错误:
insert into 表名( 字段1,字段2,字段3) values (1,,1);
所以,如果插入空的时候一定要写上null。