CREATE DATABASE语句用于创建数据库,并可以指定数据库的默认属性(如数据库默认字符集,校验规则等)。
语法
create_database_stmt:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] database_name [database_option_list]
database_option_list:
database_option [database_option ...]
database_option:
[DEFAULT] {CHARACTER SET | CHARSET} [=] charset_name
| [DEFAULT] COLLATE [=] collation_name
| LOCALITY = locality_option}
| [{PARTITION_MODE|MODE} = partition_mode_option]
| [DEFAULT_SINGLE = default_single_option]
locality_option:
'dn=storage_inst_id_list'
storage_inst_id_list:
storage_inst_id[,storage_inst_id_list]
partition_mode_option:
{'auto'|'partitioning'}
|{'drds'|'sharding'}
default_single_option:
{'on'|'off'}
注意事项
标准版不支持dbpartition(分库分表)语法,仅企业版实例支持创建DRDS模式数据库。
参数说明
参数 | 说明 |
database_name | 指定要创建的数据库名称。 |
CHARSET charset_name | 指定待创建数据库的字符集。 |
COLLATE collation_name | 指定校对规则。 |
LOCALITY | 创建数据库时指定该库的存储位置。 说明 通过LOCALITY语法指定了数据库的位置之后,不支持再修改该库的存储位置。 |
MODE | 指定逻辑库所使用的分区模式,支持两种分区模式:
重要
|
DEFAULT_SINGLE(版本要求:PolarDB-X 5.4.17-16921956及以上) | 指定AUTO模式数据库是否使用单表自动打散至各个DN节点的分布策略,该选项仅对AUTO模式数据库有效,对DRDS模式数据库无效。参数取值如下:
|
示例
创建AUTO模式数据库
test
,并指定字符集为UTF8。CREATE DATABASE test MODE=auto default CHARACTER SET UTF8; Query OK, 1 row affected (0.00 sec)
在实例中创建一个数据库,并通过以下命令指定其存储位置为polardbx-storage-0-master节点。
CREATE DATABASE db1 MODE=drds LOCALITY='dn=polardbx-storage-0-master';
说明如果在创建数据库时未指定数据库的存储位置,系统将默认在所有存储节点中均匀分布数据库。
数据库中分表的存储位置与该库的存储位置保持一致,以实现分表上的数据隔离。
数据库创建成功后,您可以通过以下语句查看数据库的存储位置信息。
SHOW CREATE DATABASE db1 MODE=drds;
返回结果如下所示:
+----------+------------------------------------------------------------------------+ | DATABASE | CREATE DATABASE | +----------+------------------------------------------------------------------------+ | db1 | CREATE DATABASE `db1` /* LOCALITY = "dn=polardbx-storage-0-master" */ | +----------+------------------------------------------------------------------------+ 1 row in set