2012-03-23 80 views
2

MySQL是否以层叠类型的方式处理默认字符设置?MySQL默认字符集

例如,我期待在生成完整的数据库脚本,并将其与这样的声明开始了:这意味着

CREATE SCHEMA IF NOT EXISTS `xyz` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ; 

那么,这是作为这部分创建的所有表数据库将默认使用UTF8字符集?如果我想为给定的表使用不同的字符集,我只需要在CREATE TABLE语句中定义它;这是否准确?我是否也可以覆盖特定表格的特定字段?谢谢!

回答

1

是的。如果在数据库(模式)级别设置charset和collat​​ion,它将应用于该数据库内的任何新创建的表,除非这些表在CREATE TABLE语句中指定了它们自己的charset/collat​​ion。

是的,你也可以在每个字段的基础上指定charset/collat​​ion。来自MySQL手册的示例:

CREATE TABLE t1 
(
    col1 VARCHAR(5) 
     CHARACTER SET latin1 
     COLLATE latin1_german1_ci 
); 
+0

感谢您的澄清,很有义务 – snappymcsnap 2012-03-23 16:45:31