云数据库 RDS-通过命令行创建数据库:参数使用方式

时间:2023-11-08 17:34:15

参数使用方式

  • 通过TEMPLATE指定数据库模板
    • 使用 template1 模板库建库时不可指定新的字符集和本地化collate属性,collate属性请参见▪设置数据库的本土化信息(collate)
      CREATE DATABASE my_db WITH TEMPLATE template1 ;
    • 使用template0可指定字符集和本地化collate属性,collate属性请参见▪设置数据库的本土化信息(collate)
      CREATE DATABASE my_db WITH ENCODING = 'UTF8' LC_COLLATE ='zh_CN.utf8' LC_CTYPE ='zh_CN.utf8' TEMPLATE = template0 ;
    • 创建数据库时不指定模板,则默认模板为template1。用户也可以指定其他的自定义模板创建数据库。
      CREATE DATABASE my_db WITH TEMPLATE = mytemplate;
  • 通过WITH ENCODING指定字符集
    CREATE DATABASE my_db WITH ENCODING 'UTF8';
  • LC_COLLATELC_CTYPE
    • 查询字符集支持的LC_COLLATE和LC_CTYPE信息
      SELECT pg_encoding_to_char(collencoding) AS encoding,collname,collcollate AS "LC_COLLATE",collctype AS "LC_CTYPE" FROM pg_collation;

      encoding为空时,表示当前LC_COLLATE支持所有的字符集。

    • 设置数据库的本土化信息(collate)

      执行如下命令,创建一个 LC_COLLATE 和 LC_CTYPE 分别为 zh_CN.utf8 的数据库。

      CREATE DATABASE my_db WITH ENCODING = 'UTF8' LC_COLLATE ='zh_CN.utf8' LC_CTYPE ='zh_CN.utf8' TEMPLATE = template0 ;

      如果指定的LC_COLLATE与字符集不兼容,则会报如下错误信息。

      1. 指定的LC_COLLATE和LC_CTYPE必须与目标字符集兼容,参考▪查询字符集支持的LC_COLLATE和LC_C...查询出的字符集,否则会报错。
      2. 目前无法直接通过ALTER DATABASE命令修改已有数据库的LC_COLLATE和LC_CTYPE信息,但可以通过创建新的数据库,然后导出再导入数据的方式进行修改。
support.huaweicloud.com/bestpractice-rds/rds_pg_0022.html