MySQL如何修改表格的字符集,如何修改某个字段的字符集
2011-03-19 14:39
435 查看
如果用户想改变表的默认字符集和所有的字符列的字符集到一个新的字符集,使用下面的语句:
ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;
警告:
上述操作是在字符集中转换列值。如果用户在字符集(如 gb2312)中有一个列,但存储的值使用的是其它的一些不兼容的字符集(如 utf8),那么该操作将不会得到用户期望的结果。在这种情况下,用户必须对每一列做如下操作:
ALTER TABLE t1 CHANGE c1 c1 BLOB;
ALTER TABLE t1 CHANGE c1 c1 TEXT CHARACTER SET utf8;
这样做的原因是:从 BLOB 列转换或转换到 BLOB 列没有转换发生。
如果用户指定以二进制进行 CONVERT TO CHARACTER SET,则 CHAR、VARCHAR 和 TEXT 列将转换为它们对应的二进制字符串类型(BINARY,VARBINARY,BLOB)。这意味着这些列将不再有字符集,随后的 CONVERT TO 操作也将不会作用到它们上。
如果仅仅改变一个表的缺省字符集,可使用下面的语句:
ALTER TABLE tbl_name DEFAULT CHARACTER SET charset_name;
DEFAULT是可选的。当向一个表里添加一个新的列时,如果没有指定字符集,则就采用缺省的字符集(例如当ALTER TABLE ... ADD column)。
ALTER TABLE ... DEFAULT CHARACTER SET 和 ALTER TABLE ... CHARACTER SET 是等价的,修改的仅仅是缺省的表字符集。
ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;
警告:
上述操作是在字符集中转换列值。如果用户在字符集(如 gb2312)中有一个列,但存储的值使用的是其它的一些不兼容的字符集(如 utf8),那么该操作将不会得到用户期望的结果。在这种情况下,用户必须对每一列做如下操作:
ALTER TABLE t1 CHANGE c1 c1 BLOB;
ALTER TABLE t1 CHANGE c1 c1 TEXT CHARACTER SET utf8;
这样做的原因是:从 BLOB 列转换或转换到 BLOB 列没有转换发生。
如果用户指定以二进制进行 CONVERT TO CHARACTER SET,则 CHAR、VARCHAR 和 TEXT 列将转换为它们对应的二进制字符串类型(BINARY,VARBINARY,BLOB)。这意味着这些列将不再有字符集,随后的 CONVERT TO 操作也将不会作用到它们上。
如果仅仅改变一个表的缺省字符集,可使用下面的语句:
ALTER TABLE tbl_name DEFAULT CHARACTER SET charset_name;
DEFAULT是可选的。当向一个表里添加一个新的列时,如果没有指定字符集,则就采用缺省的字符集(例如当ALTER TABLE ... ADD column)。
ALTER TABLE ... DEFAULT CHARACTER SET 和 ALTER TABLE ... CHARACTER SET 是等价的,修改的仅仅是缺省的表字符集。
相关文章推荐
- MySQL如何修改表格的字符集,如何修改某个字段的字符集
- mysql 表格中的数据量过大,修改数据库字段信息会花费很长的时间
- MySQL修改表的默认字符集和修改表字段的默认字符集
- mysql修改表、字段、库的字符集
- 如何修改windows下mysql的字符集
- MySQL 如何修改字符集 utf8 改为 utf8mb4
- mysql修改字段字符集
- 如何修改MySQL字符集
- mysql中如何实现字段的添加、修改、删除
- 修改MySql中数据表和字段的字符集和排序规则
- mysql修改表、字段、库的字符集
- mysql 修改库的默认字符集、表的默认字符集和修改表字段的默认字符集
- mysql修改表、字段、库的字符集
- mysql修改表、字段、库的字符集(转)
- [MySQL FAQ]系列 -- 如何为一个字段指定字符集
- mysql修改表、字段、库的字符集
- mysql如何修改默认字符集编码
- MySQL如何修改字段名
- mysql 如何修改字符集
- mysql 修改表的默认字符集和修改表字段的默认字符集