SGTMS

做事情
我们是认真的
您的位置:SGTMS>速记>MySQL出现ERROR1366的解决办法

MySQL出现ERROR1366的解决办法

正文

今天向新建的表中添加中文内容,出现以下错误:

mysql> INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES('R510VC 15.6英寸笔记本','笔记本','华硕','3399',DEFAULT,DEFAULT);
ERROR 1366 (HY000): Incorrect string value: '\xE8\x8B\xB1\xE5\xAF\xB8...' for column 'goods_name' at row 1 

在网上找到了解决方法,亲测有效。

出错原因:检查数据库此字段的字符集与整理字符集是否与SQL语句传递数据的字符集相同;不相同则会引发MySQL1366错误。

解决方法:

#1.检查数据表所有字段的状态
mysql> SHOW FULL COLUMNS 表名; 
MySQL
#2.发现collatioin项非utf8,需要进行修改,使用如下的语句
mysql> ALTER TABLE tablename CHANGE 字段名1 字段名2 VARCHAR(36) CHARACTER SET utf8 NOT NULL; 
#3.检查数据表所有字段的状态
mysql> SHOW FULL COLUMNS FROM tdb_goods; 

附查看当前的字符编码方法:

mysql> show variables like'%character%';

show databases;

use 库名 ---选择使用库;

show tables;

desc 表名 ---查看表结构;

show full columns from tablename;

alter table yc_tz convert to character set utf8 ---修改表的字符编码;

create table yc_tz_bk as select * from yc_tz ---表备份,属性不保留;

INSERT INTO table2 SELECT * FROM table1 ---从一个表中复制所有的列插入到另一个已存在的表中;

INSERT INTO table2(column_name) SELECT column_name FROM table1 ---复制指定列插入到另一个已存在的表中;

SELECT table_name ,table_type,TABLE_COLLATION AS FROM information_schema.tables WHERE table_schema = 'dc' ORDER BY table_name DESC ---查看DC库所有表编码;

SELECT SCHEMA_NAME,DEFAULT_CHARACTER_SET_NAME,DEFAULT_COLLATION_NAME,SQL_PATH from information_schema.SCHEMATA --- 查看数据库字符编码;

本文最后更新于2021-3-11,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《MySQL出现ERROR1366的解决办法》
文章链接: https://www.sgtms.com/shorthand/27.html
本站资源仅供个人学习交流,转载或者引用本文内容请注明来源及作者,不允许用于商业用途。
分享到:

相关推荐

网友评论抢沙发

路人甲 表情
Ctrl+Enter快速提交