mysql字符转换时的注意事项

平时我们在字符转换的时候,经常是这么做的:
ALTER TABLE `t1` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;


这种做法在某些时候是不能工作的,我们来看一个例子:
1, CREATE TABLE `t1` (`c1` text NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=latin1;

2, ALTER TABLE `t1` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

3, SHOW CREATE TABLE `t1`\G
*************************** 1. row ***************************
TABLE: t1
CREATE TABLE: CREATE TABLE `t1` (
`c1` mediumtext NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row IN SET (0.01 sec)


此时我会发现表结构会有所变化,从 text 变成 mediumtext!!!
这样是不能达到我们的目的的。


我们可以采用一个perl脚本来完成这些事情,在适当的时候还能保留全文索引,下载地址如下:
wget


脚本执行如下:
./convert_charset -u root -p 1234  --collate utf8_general_ci -d test --tables t1

注释如下
root    数据库用户
1234    数据库密码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老帽爬新坡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值