Bài viết này sẽ mô tả cách tạo một schema (lược đồ) mới trong PostgreSQL bằng lệnh CREATE SCHEMA.
1. Tạo một schema mới
Câu lệnh CREATE SCHEMA cho phép bạn tạo một schema mới trong cơ sở dữ liệu hiện tại.
CREATE SCHEMA [IF NOT EXISTS] schema_name;
Trong cú pháp này:
- schema_name: phải là duy nhất trong cơ sở dữ liệu hiện tại. schema_name có thể là bất kỳ tên nào, nhưng tên bắt đầu bằng pg_ có ý nghĩa đặc biệt thì không thể được sử dụng.
- Option IF NOT EXISTS để tạo điều kiện cho schema mới chỉ khi nó không tồn tại. Cố gắng tạo một schema mới đã tồn tại mà không sử dụng option này sẽ bị lỗi.
※Lưu ý rằng để thực thi câu lệnh CREATE SCHEMA, bạn phải là superuser hoặc có đặc quyền CREATE trong cơ sở dữ liệu hiện tại.
Bây giờ, chúng ta sẽ kết nối với cơ sở dữ liệu muốn tạo schema là mydb.
Để xem các schema hiện đang được tạo trong cơ sở dữ liệu mydb, thực thi lệnh \dn
Tạo một schema mới:
CREATE SCHEMA IF NOT EXISTS myschema;
Xem tất cả schema có trong database mydb
SELECT * FROM pg_catalog.pg_namespace ORDER BY nspname;
2. Tạo một schema mới, đồng thời chỉ định chủ sở hữu cho schema
Khi tạo một schema, mặc định owner của schema được tạo chính là user hiện tại đang thực thi lệnh, nhưng bạn cũng có thể chỉ định một user khác là owner của schema khi tạo mới. Sử dụng cú pháp sau:
CREATE SCHEMA IF NOT EXISTS schema_name AUTHORIZATION owner_name;
Bây giờ chúng ta sẽ tạo một schema mới myschema1 với owner minhminh như sau:
3. Tạo một lược đồ mới, đồng thời tạo các đối tượng như table, view,… cho schema
Cùng với việc tạo một schema mới, bạn có thể đồng thời tạo các đối tượng như table, view,… cho schema. Với cú pháp sau:
CREATE SCHEMA
[ IF NOT EXISTS ]
schema_name
[ AUTHORIZATION role_specification ]
schema_element [ ... ]
Trong cú pháp trên schema_element, mô tả lệnh SQL sẽ được tạo cùng một lúc. Nó có thể là một trong những lệnh CREATE TABLE, CREATE VIEW, CREATE INDEX, CREATE SEQUENCE, CREATE TRIGGER hoặc GRANT. Nếu bạn viết nhiều hơn một những lệnh SQL này thì đừng viết dấu chấm phẩy (;) ở cuối mỗi lệnh SQL.
Ví dụ sau sử dụng câu lệnh CREATE SCHEMA để tạo một schema mới có tên myschema2. Nó cũng tạo một table có tên là deliveries và một view có tên deliveries_view thuộc về schema myschema2:
CREATE SCHEMA myschema2 CREATE TABLE deliveries( id SERIAL NOT NULL, customer_id INT NOT NULL, ship_date DATE NOT NULL ) CREATE VIEW deliveries_view AS SELECT ID, ship_date FROM deliveries WHERE ship_date <= CURRENT_DATE;
Chúng ta đã tạo thành công schema myschema2 và tạo table deliveries và view deliveries_view trong schema đã tạo.
Xem thêm: https://www.postgresql.org/docs/current/sql-createschema.html
[…] database objects drop schema postgresql postgresql schema FacebookTwitterPinterestLinkedIn Lệnh PostgreSQL CREATE SCHEMA Cách export dữ liệu của table PostgreSQL ra CSV […]