MySQL是否以级联方式处理默认字符设置?
例如,我正在查看一个生成完整数据库的脚本,并从这样的语句开始:
CREATE SCHEMA IF NOT EXISTS `xyz` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
这是否意味着默认情况下,作为此数据库的一部分创建的所有表都将使用UTF8字符集?如果我想为给定的表使用不同的字符集,我只需要在CREATE TABLE语句中定义它?那是准确的吗?我可以覆盖特定表的特定字段吗?谢谢!
答案 0 :(得分:1)
是。如果在数据库(模式)级别设置charset和collation,它将应用于该数据库中任何新创建的表,除非这些表在CREATE TABLE
语句中指定了自己的charset / collation。
是的,您还可以在每个字段的基础上指定字符集/排序规则。 MySQL手册中的示例:
CREATE TABLE t1
(
col1 VARCHAR(5)
CHARACTER SET latin1
COLLATE latin1_german1_ci
);