VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

CREATE SCHEMA

功能描述

CREATE SCHEMA语法用于创建模式。访问命名对象时可以使用模式名作为前缀进行访问,如果无模式名前缀,则访问当前模式下的命名对象。创建命名对象时也可用模式名作为前缀修饰。

本文档只介绍CREATE SCHEMA语句兼容MySQL的特性,原Vastbase的CREATE SCHEMA语法未做删除和修改,详见CREATE SCHEMA

Vastbase在MySQL兼容模式下,支持CREATE SCHEMA如下特性用法:

创建模式时指定默认字符集和字符序

语法格式

CREATE SCHEMA schema_name 
    [ [DEFAULT] CHARACTER SET | CHARSET [ = ] default_charset ] [ [DEFAULT] COLLATE [ = ] default_collation ];

注意事项

该功能仅在数据库兼容模式为MySQL时支持(即数据库实例初始化时指定DBCOMPATIBILITY='B')。

参数说明

  • schema_name

    模式名称。

    取值范围:字符串,要符合标识符的命名规范。

    模式名不能和当前数据库里其他的模式重名。 模式的名称不可以pg_开头。

  • default_charset

    指定模式的默认字符集,单独指定时会将模式的默认字符序设置为指定的字符集的默认字符序。

  • default_collation

    指定模式的默认字符序,单独指定时会将模式的默认字符集设置为指定的字符序对应的字符集。

    如果当前搜索路径上的模式中存在同名对象时,需要明确指定引用对象所在的模式。可以通过命令SHOW SEARCH_PATH;来查看当前搜索路径上的模式。

表1 B模式(即sql_compatibility = 'B')下支持的字符集和字符序介绍

字符序名称 对应的字符集 描述
utf8mb4_general_ci utf8mb4(即utf8) 使用通用排序规则,不区分大小写。
utf8mb4_unicode_ci utf8mb4(即utf8) 使用通用排序规则,不区分大小写。
utf8mb4_bin utf8mb4(即utf8) 使用通用排序规则,不区分大小写。
binary binary 使用二进制排序规则。
utf8_general_ci utf8 使用通用排序规则,不区分大小写。
utf8_unicode_ci utf8 使用通用排序规则,不区分大小写。
utf8_bin utf8 使用通用排序规则,不区分大小写。

示例

1、创建一个角色role1。

CREATE ROLE role1 IDENTIFIED BY 'Vast@123456';

2、为用户role1创建一个同名schema,子命令创建的表films和winners的拥有者为role1。

CREATE SCHEMA AUTHORIZATION role1
     CREATE TABLE films (title text, release date, awards text[])      
     CREATE VIEW winners AS         
     SELECT title, release FROM films WHERE awards IS NOT NULL;

3、创建一个模式ds,指定schema的默认字符集为utf8mb4,默认字符序为utf8mb4_bin。

CREATE SCHEMA ds CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

4、删除schema和用户。

DROP SCHEMA role1 CASCADE;
DROP USER role1 CASCADE;

支持IF NOT EXISTS选项

语法格式

CREATE SCHEMA [ IF NOT EXISTS ] schema_name
    [ AUTHORIZATION user_name ] [WITH BLOCKCHAIN] [ schema_element [ ... ] ];

参数说明

IF NOT EXISTS

如果已经存在相同名称的模式名称,不会抛出一个错误,而会发出一个通知,告知模式已存在。

示例

使用IF NOT EXISTS选项创建一个SCHEMA 名称为s1。

CREATE SCHEMA IF NOT EXISTS s1 ;