PostgreSQL CREATE SCHEMA
Summary: in this tutorial, you will learn how to use the PostgreSQL CREATE SCHEMA
statement to create a new schema in a database.
Introduction to PostgreSQL CREATE SCHEMA statement
The CREATE SCHEMA
statement allows you to create a new schema in the current database.
The following illustrates the syntax of the CREATE SCHEMA
statement:
In this syntax:
- First, specify the name of the schema after the
CREATE SCHEMA
keywords. The schema name must be unique within the current database. - Second, optionally use
IF NOT EXISTS
to conditionally create the new schema only if it does not exist. Attempting to create a new schema that already exists without using theIF NOT EXISTS
option will result in an error.
Note that to execute the CREATE SCHEMA
statement, you must have the CREATE
privilege in the current database.
You can also create a schema for a user:
In this case, the schema will have the same name as the username
.
PostgreSQL allows you to create a schema and a list of objects such as tables and views using a single statement as follows:
Notice that each subcommand does not end with a semicolon (;).
PostgreSQL CREATE SCHEMA statement examples
Let’s take some examples of using the CREATE SCHEMA
statement.
1) Basic CREATE SCHEMA statement example
The following statement uses the CREATE SCHEMA
statement to create a new schema named marketing
:
The following statement returns all schemas from the current database:
This picture shows the output:
2) Using CREATE SCHEMA statement to create a schema for a user example
First, create a new role with named john
:
Second, create a schema for john
:
Third, create a new schema called doe
that will be owned by john
:
3) Using CREATE SCHEMA statement to create a schema and its objects example
The following example uses the CREATE SCHEMA
statement to create a new schema named scm
. It also creates a table named deliveries
and a view named delivery_due_list
that belongs to the scm
schema:
Summary
- Use the PostgreSQL
CREATE SCHEMA
statement to create a new schema in a database.