Mysql Unique Key 报错 Duplicate
原创-转载请注明出处
问题描述
Mysql表A里的字段Name(类型为Varchar),设置了Unique约束。
如果表里已经存在Name为"a"的记录时,如果此时再insert一条Name为“a ”的数据时,数据库就汇报duplicate的错。
在数据库中检查发现
select * from table where name = "a";
select * from table where name = "a ";
检索出来的结果竟然是一样的!都是"a"这条记录。
错误分析
因为在Mysql中,Varchar在进行字符串比较时,会去掉空格,所以“a”和“a ”在select的时候都视为"a"。
解决方法
将Name字段的类型改为Varbinary
结论
Varchar 在查询的时候会去掉最右边的空格,因此在进行字符串比较时,只保留了除最右边的空格剩下的字节。
Varbinary在查询的时候也不会丢弃任何字节,在比较的时候,所有的字节都是有效的。
遇到这个问题的时候,首先想到的是修改unique约束,但是网上全部都是要修改就删掉约束重建的(我也是试着删了重建,但很莫名的删不掉?不得不另寻方法)。相信也有人遇到类似的问题,但至少我没有找到一个真的好好解决问题的文章。
如果文章中有什么不对的不全的还望指出。
Mysql Unique Key 报错 Duplicate相关推荐
- MySQL ALTER TABLE报错Duplicate entry 'xxx' for key 'PRIMARY'解决方法
在MySQL中执行加字段等操作时可能会报Duplicate entry 'xxx' for key 'PRIMARY'的错,例如: mysql> alter table test add aa ...
- navicat 手动设置索引unique,报错duplicate entry for key
错误场景: 仅限于手动设置unique时. 在navicat中根据流程: 右键表名 -> 设计表 -> 索引 -> 设置某列为unique -> 保存 错误图示: 错误原因: ...
- mysql 唯一性约束报错_怪异的MySQL Online DDL报错Duplicate entry
今天线上执行Online DDL的时候发现一个奇怪的报错,觉得比较意义,遂整理如下.线上数据库版本:percona server 5.7.14 报错现场:每次执行的时候重复报错记录都不一样 mysql ...
- mysql 报错 Duplicate entry ‘xxx‘ for key ‘字段名‘
有时候对表进行操作,例如加唯一键,或者插入数据(已经有唯一键),会报错 Duplicate entry...for key...原因是primary key(主键)或unique key(唯一键)的值 ...
- postgres 保存报错duplicate key value violates unique constraint...解决方案_亲测有效
postgres 保存报错duplicate key value violates unique constraint 解决方案 原因分析: 表名: A 表A的主键id 是由序列 x$seq 生成的 ...
- kettle使用mysql作为资源库报错 创建资源库时只有25张表,原本应该46张表。
kettle使用mysql作为资源库报错 创建资源库时只有25张表,原本应该46张表. 连用户表都没有 ,导致连 默认的 admin和guest都无法登陆自己的资源库!!!! 问题是 SQL语句里边使 ...
- 【Unity导入MySql.Data.dll报错】
Unity导入MySql.Data.dll报错 错误的起因,想用Unity对MySQL操作.操作参考了勤诚勇毅的帖子 链接: https://blog.csdn.net/qq_43333567/art ...
- mysql安装教程博音网_RTSP视频平台EasyNVR使用mysql数据源启动报错unknow drivermysql优化...
原标题:RTSP视频平台EasyNVR使用mysql数据源启动报错unknow driver"mysql"优化 我们上一篇讲了TSINGSEE青犀视频开发的视频平台默认都是使用的s ...
- mysql表恢复报错binlog_mysql数据恢复,利用binlog2sql快速闪回
一.环境设置 1.mysql配置中首先要开启binlog,如没开启,在my.conf 下配置如下参数: server-id = 1 log_bin = /var/log/mysql/mysql-bin ...
最新文章
- Docker入门系列8
- 一次生产事故的优化经历
- java运行效率优化_如何优化JAVA代码及提高执行效率
- FFMPEG源码分析(二)
- 第十一章项目沟通管理重点--转载
- Arcgis10安装说明
- python做的大型游戏_Python实现数据量较大的生命游戏
- Notification使用详解之四:由后台服务向Activity发送进度信息
- iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 9443 -j DNAT
- Android 最新原生定位折腾总结科普
- 在c语言中逻辑或运算符失身额,我的Fortran基本用法小结【转载】
- 阿斯克码表ACSII对照表
- 【win7提速新方法:禁用禁用eSATA接口】
- Oracle临时表详解
- 一个公布每天全球被黑网站的站点
- [C语言]兔子生崽问题:兔子生崽问题。假设一对小兔的成熟期是一个月,即一个月可长成成兔,那么如果每对成兔每个月都可以生一对小兔,一对新生的小兔从第二个月起就开始生兔子。试问从一对新生的兔子开始,一年以
- Pictures of Ascii Art
- php自学建议_php自学提升进阶路线
- 数据中心解决方案之灾备方案设计(上)
- HTTPS单向认证双向认证
热门文章
- 三菱fx2n64mr说明书_三菱FX2N-64MR-UA1/UL使用说明书FX2N-64MR-UA1/UL手册 - 广州凌控
- FinClip | 2022 年 10月产品大事记
- 用Python绘制奥运五环
- WebDAV将会在公共领域取代FTP
- 叶史瓦大学计算机专业,叶史瓦的大学排名
- 我的暗影精灵BIOS做过的更改
- [SDOI2009][BZOJ 1226]学校食堂
- wpf 音频波形图_wpf波形图 - IT屋-程序员软件开发技术分享社区
- 求近似数最值_求近似数的方法
- 与,或,非,异或,左移,右移,位运算符号总结