mysql修改表的编码后怎么恢复已有的数据?
迷茫
迷茫 2017-04-17 11:32:58
[MySQL讨论组]

举个例子,我创建表时没有设定字符集,默认是latin1,后来发现中文全乱码,就改成gbk。新插入的数据就正常了,但是已有的数据还是乱码,怎么让已有数据也恢复正常。下面是我的一个例子:

mysql> show create table example2 \G;
*************************** 1. row ***************************
Table: example2
Create Table: CREATE TABLE example2 (
Id int(11) NOT NULL AUTO_INCREMENT,
a varchar(20) DEFAULT NULL,
b date DEFAULT NULL,
PRIMARY KEY (Id)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

ERROR:
No query specified

mysql> ALTER TABLE example2 CONVERT TO CHARACTER SET gbk;
Query OK, 1 row affected (1.49 sec)
Records: 1 Duplicates: 0 Warnings: 0

mysql> select * from example2;
+----+------+------------+
| Id | a | b |
+----+------+------------+
| 1 | ?? | 2014-07-24 |
+----+------+------------+
1 row in set (0.00 sec)

mysql> insert example2 values(2,'我',now());
Query OK, 1 row affected, 1 warning (0.08 sec)

mysql> select * from example2;
+----+------+------------+
| Id | a | b |
+----+------+------------+
| 1 | ?? | 2014-07-24 |
| 2 | 我 | 2014-07-24 |
+----+------+------------+
2 rows in set (0.00 sec)

mysql>

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号