weixin_43886819 2018-12-19 11:17 采纳率: 0%
浏览 849

mysql 主键 唯一性校验为啥会去掉最右端空格

例:
CREATE TABLE td_m_funcright11 (
RIGHT_CODE VARCHAR(30) COLLATE utf8_bin NOT NULL,
PRIMARY KEY (RIGHT_CODE)
);

INSERT INTO td_m_funcright11 VALUES('1'),('2'),('1 ');

错误:Error Code: 1062 - Duplicate entry '1 ' for key 'PRIMARY'

描述:
插入的值第一个及第三个系统认为是是主键重复,但实际上这两个值length()长度是不一样的,是否意味着存储的时候默认把1尾部后面的空格去掉了?但如果在这个1 前面加再空格就能插入。本人小白表示不太理解,请各位大神给帮忙解释下。
遇到这个问题是因为从ORACLE的数据转到MYSQL中,ORACLE库中存在两条主键字段值一条尾部包含空格 ,一条不包含的值,导入MYSQL中就只能插一条,再插就会报主键冲突,各位大侠有啥好的办法,想保留这两条记录又得是主键。。。图片说明图片说明

  • 写回答

2条回答 默认 最新

  • lvzhihong666 2018-12-19 03:38
    关注

    values ('1','2','3 ') 不应该是这样的吗? 你那样写可以吗?感觉怪怪的。

    评论

报告相同问题?

悬赏问题

  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作