有一个MySQL table
,它的定义取自SQLYog Enterprise
:
Table Create Table
----------------- ---------------------------------------------------------
etape_prospection CREATE TABLE `etape_prospection` (
`etape_prosp_id` int(10) NOT NULL AUTO_INCREMENT,
`type_prosp_id` int(10) NOT NULL DEFAULT '0',
`prosp_id` int(10) NOT NULL DEFAULT '0',
`etape_prosp_date` datetime DEFAULT NULL,
`etape_prosp_comment` text,
PRIMARY KEY (`etape_prosp_id`),
KEY `concerne_fk` (`prosp_id`),
KEY `de_type_fk` (`type_prosp_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1
我想将此表的default charset
从latin1
更改为utf8
。如何做到这一点?
发布于 2012-01-18 16:04:24
如果要将表default character set
和所有字符列更改为新字符集,请使用如下语句:
ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;
因此,查询将是:
ALTER TABLE etape_prospection CONVERT TO CHARACTER SET utf8;
发布于 2012-01-18 15:58:32
更改表的默认字符集:
ALTER TABLE etape_prospection
CHARACTER SET utf8,
COLLATE utf8_general_ci;
要更改字符串列字符集,请执行以下查询:
ALTER TABLE etape_prospection
CHANGE COLUMN etape_prosp_comment etape_prosp_comment TEXT CHARACTER SET utf8 COLLATE utf8_general_ci;
发布于 2012-01-18 15:57:26
ALTER TABLE
MySQL命令应该可以做到这一点。下面的命令将表的默认字符集及其所有列的字符集更改为UTF8。
ALTER TABLE etape_prospection CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
此命令将表中所有类似文本的列转换为新字符集。字符集每个字符使用不同数量的数据,因此MySQL将转换某些列的类型,以确保有足够的空间来容纳与旧列类型相同数量的字符。
我建议您在修改任何实时数据之前阅读ALTER TABLE MySQL documentation。
https://stackoverflow.com/questions/8906813
复制相似问题