全部產品
Search
文件中心

PolarDB:CREATE DATABASE

更新時間:Jul 06, 2024

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

指定邏輯庫所使用的分區模式,支援兩種分區模式:

  • drds:DRDS模式,全庫只能使用DRDS模式的CREATE TABLE(DRDS模式)文法(如dbpartition by/tbpartition by)進行建表。

  • auto:AUTO模式

    • 不手動指定分區定義時,自動按主鍵分區;

    • 全庫只能使用新的CREATE TABLE(AUTO模式)文法(如partition byhash/Range/List)進行建表。

重要
  • 建立資料庫不指定mode,預設是“drds”;

  • 資料庫的分區模式不可更改,建立資料庫時一旦指定,不能變更。

  • 關於兩種分區模式的說明,請參見AUTO模式資料庫與DRDS模式資料庫

DEFAULT_SINGLE(版本要求:PolarDB-X 5.4.17-16921956及以上)

指定AUTO模式資料庫是否使用單表自動打散至各個DN節點的分布策略,該選項僅對AUTO模式資料庫有效,對DRDS模式資料庫無效。參數取值如下:

  • 當DEFAULT_SINGLE = 'on' 時,AUTO模式資料庫建表且不顯式指定分區定義時,預設建單表並自動打散到執行個體的不同的DN節點;

  • 當DEFAULT_SINGLE = 'off' 或沒指定值時,AUTO模式資料庫建表且不顯式指定分區定義時,預設按主鍵自動分區。

樣本

  • 建立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