您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

[MySQL]--MySQL表中某个列插入数据总被截断,报编码方式的语法错误,实际是column的not null属性和更改编码语法导致的冲突。

bubuko 2022/1/25 20:08:40 mysql 字数 2210 阅读 803 来源 http://www.bubuko.com/infolist-5-1.html

MySQL的编码方式中,常用的有gb2312<gbk<utf8。 MySQL的编码方式的查看,常用三个参数:character_set_client, character_set_connection ,character_set_result. 查询goods表的列的编码情况: show full ...

  MySQL的编码方式中,常用的有gb2312<gbk<utf8。

  MySQL的编码方式的查看,常用三个参数:character_set_client, character_set_connection ,character_set_result.

         技术分享图片

  

  查询goods表的列的编码情况: show full columns from goods;

  技术分享图片

 

 

 

  在三个参数一样的情况下,发现goods表中的goods_name的值被截断了,单独插入一行数据的时候,报字符编码错误。

      技术分享图片

 

 

   

  用alter table change语法来修改列的默认字符集,结果报错ERROR 1064. 自己没发现语法错在什么地方。

    mysql> alter table goods change goods_name goods_name varchar(120) not null character set utf8 ;
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘character set utf8‘ at line 1
    mysql>

技术分享图片  

  后来去掉了not null之后,发现更新字符集语句可以正常更新了

  mysql> alter table goods change goods_name goods_name varchar(120) not null character set utf8 ;
  ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘character set utf8‘ at line 1
  mysql>
  mysql>
  mysql>
  mysql> alter table goods change goods_name goods_name varchar(120) character set utf8 ;
  Query OK, 0 rows affected (0.08 sec)
  Records: 0 Duplicates: 0 Warnings: 0

  

  

  

 

[MySQL]--MySQL表中某个列插入数据总被截断,报编码方式的语法错误,实际是column的not null属性和更改编码语法导致的冲突。

原文:https://www.cnblogs.com/gaochsh/p/12398243.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶