标签 mysql 下的文章

mysql 修改表字段编码

mysql 中需要存储中文, 以前的数据库编码是 latin1 , 现在需要存储中文, 就在最近一次的系统升级时把数据库的默认编码改成了 utf8.

表结构是使用阿里云的 DTS 直接迁移过来的. 今早发现还是存储不了中文, 经过查看, 数据表的编码还是 latin1, 修改了表的编码后, 还是存不进去. 才意识到字段的编码可能还是 latin1.

使用

show create table tablename ;

查看到确实如猜想一般. 然后使用下面的语句修改. (注意: 使用 desc tablename 不能看到编码.)

alter table tablename change columnname columnname VARCHAR (215) CHARACTER set utf8 default "";

搞定.

mysql 修改unique key

mysql可以使用unique key来确保数据的准确性,unique key可以是一个字段,也可以是多个字段.

对应已经存在的unique key如何修改呢?目前我使用的方法是分两步来完成,先drop掉,然后在创建。

需要注意的是drop时关键字是“index”,而创建时关键词是“unique key”,命令如下:

先使用show create table xxx语句查看当前unique key的名称.

然后drop掉, 再add.

show create table tb_device;
alter table tb_device drop index `idx_mac`;
alter table tb_device add unique key `idx_mac` (`mac`,`type`);