我有问题与MySQL表字符集。我的数据库中的每个表都有默认的字符集。例如:Mysql更改默认表字符集到数据库字符集
CREATE TABLE privacy_settings (
id_privacy_setting int(11) NOT NULL AUTO_INCREMENT,
id_account int(11) NOT NULL,
setting_name varchar(255) NOT NULL DEFAULT '0',
privacy_level int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (id_privacy_setting),
KEY fk_privacy_settings_accounts (id_account),
CONSTRAINT fk_privacy_settings_accounts FOREIGN KEY (id_account) REFERENCES accounts (id_account) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8
我想删除默认字符集块,所以表格可以使用数据库的默认字符集:
CREATE TABLE privacy_settings (
id_privacy_setting int(11) NOT NULL AUTO_INCREMENT,
id_account int(11) NOT NULL,
setting_name varchar(255) NOT NULL DEFAULT '0',
privacy_level int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (id_privacy_setting),
KEY fk_privacy_settings_accounts (id_account),
CONSTRAINT fk_privacy_settings_accounts FOREIGN KEY (id_account) REFERENCES accounts (id_account) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB
有没有办法做到这一点无需重新创建表?
我知道,但是当我这样做,'DEFAULT CHARSET'块没有从我的表定义 – Ris90
删除然后您可能需要更改整个数据库。我已经为答案添加了更多信息。我怀疑默认字符集和活动字符集对于你的表格可能会有所不同,但这取决于你如何生成定义。 'SHOW CREATE TABLE tbl_name'应该可以工作。在执行'ALTER TABLE'语句来更改字符集后,'SHOW CREATE TABLE ...'查询将新字符集显示为DEFAULT CHARSET。要获取字符集/排序规则列表,请使用['SHOW COLLATION'](http://dev.mysql.com/doc/refman/5.1/en/show-collation.html)。 – JYelton
我想彻底删除DEFAULT CHARSET块从表定义,而不是chage默认字符集的表,但删除此块,使每个表使用数据库编码 – Ris90