CREATE SCHEMA statement to create a schema in the current database.
A schema is essentially a namespace: it contains named objects (tables, data types, functions, and operators) whose names can duplicate those of objects in other schemas.
Named objects in a schema can be accessed by using the schema name as prefix or by setting the schema name in the search path.
create_schema_name ::= CREATE SCHEMA [ IF NOT EXISTS ] schema_name [ AUTHORIZATION role_specification ] create_schema_role ::= CREATE SCHEMA [ IF NOT EXISTS ] AUTHORIZATION role_specification role_specification ::= role_name | CURRENT_USER | SESSION_USER
schema_nameis the name of the schema being created. If no schema_name is specified, the
role_nameis used. Schema names must not begin with
pg_. The attempt to create a schema with such a name, or to rename an existing schema to have such a name, causes an error.
role_nameis the role who will own the new schema. If omitted, it defaults to the user executing the command. To create a schema owned by another role, you must be a direct or indirect member of that role, or be a superuser.
- Create a schema.
yugabyte=# CREATE SCHEMA IF NOT EXISTS branch;
- Create a schema for a user.
yugabyte=# CREATE ROLE John; yugabyte=# CREATE SCHEMA AUTHORIZATION john;
- Create a schema that will be owned by another role.
yugabyte=# CREATE SCHEMA branch AUTHORIZATION john;