正文
今天向新建的表中添加中文内容,出现以下错误:
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 表名;
#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 --- 查看数据库字符编码;
文章名称:《MySQL出现ERROR1366的解决办法》
文章链接: https://www.sgtms.com/shorthand/27.html
本站资源仅供个人学习交流,转载或者引用本文内容请注明来源及作者,不允许用于商业用途。
网友评论抢沙发