插入中文是空白,之后再插入其他的中文就直接报错,说重复插入

插入中文是空白,之后再插入其他的中文就直接报错,说重复插入

mysql> CREATE TABLE test111(

    -> a VARCHAR(20) NOT NULL UNIQUE

    -> )ENGINE=INNODB CHARSET=UTF8;

Query OK, 0 rows affected (0.01 sec)


mysql> INSERT test111(a) VALUES('张三');

Query OK, 1 row affected, 2 warnings (0.00 sec)


mysql> SELECT * FROM test111;

+---+

| a |

+---+

|   |

+---+

1 row in set (0.00 sec)


mysql> INSERT test111(a) VALUES('李四');

ERROR 1062 (23000): Duplicate entry '' for key 'a'

问题在于为什么是空白,mysql是不是默认插入的记录=空白,之后插入的中文也=空白,所以报错说我插入重复数据?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,可以尝试将cmd客户端的字符集设置为gb2312,结果集也要设置为gb2312。打开cmd进入MySQL后进行配置,使用语句:

    1. set character_set_client=gb2312;

    2. set character_set_results=gb2312;

设置完成后,请重新添加数据。祝学习愉快!

  • 慕侠6347478 提问者 #1
    有没有永久解决的办法,重新登录后之前的中文记录变成乱码,新插入的中文还是空白
    2019-11-07 16:33:58
  • 好帮手慕小尤 回复 提问者 慕侠6347478 #2
    同学你好,同学可尝试在my.ini中添加character_set_client=gb2312;与character_set_results=gb2312;配置,然后重启mysql。祝学习愉快!
    2019-11-07 16:42:26
  • 慕侠6347478 提问者 回复 好帮手慕小尤 #3
    升级了mysql版本以后,一切正常了.......
    2019-11-07 18:02:38
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
PHP小白零基础入门
  • 参与学习           人
  • 提交作业       626    份
  • 解答问题       4928    个

想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师