PostgreSQL

Lệnh PostgreSQL CREATE SCHEMA

Lệnh PostgreSQL CREATE SCHEMA
Được viết bởi Minh Hoàng

Series chia sẻ về PostgreSQL – Cơ sở dữ liệu mã nguồn mở tiên tiến nhất thế giới.

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

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.

Lệnh PostgreSQL CREATE SCHEMA - Hình 1

Để xem các schema hiện đang được tạo trong cơ sở dữ liệu mydb, thực thi lệnh \dn

Lệnh PostgreSQL CREATE SCHEMA - Hình 2

Tạo một schema mới:

CREATE SCHEMA IF NOT EXISTS myschema;

Lệnh PostgreSQL CREATE SCHEMA - Hình 3

Xem tất cả schema có trong database mydb

SELECT * 
FROM pg_catalog.pg_namespace
ORDER BY nspname;

Lệnh PostgreSQL CREATE SCHEMA - Hình 4

Xem thêm: Hiển thị danh sách các schema (lược đồ) đã tạo

2. Tạo một schema mới, đồng thời chỉ định chủ sở hữu cho schema

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:

Lệnh PostgreSQL CREATE SCHEMA - Hình 5

3. Tạo một lược đồ mới, đồng thời tạo các đối tượng như table, view,... cho schema

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;

Lệnh PostgreSQL CREATE SCHEMA - Hình 6

Chúng ta đã tạo thành công schema myschema2 và tạo table deliveries và view deliveries_view trong schema đã tạo.

Lệnh PostgreSQL CREATE SCHEMA - Hình 7

Lệnh PostgreSQL CREATE SCHEMA - Hình 8

Xem thêm: https://www.postgresql.org/docs/current/sql-createschema.html

Cảm ơn bạn đã theo dõi. Đừng ngần ngại hãy cùng thảo luận với chúng tôi!

Giới thiệu

Minh Hoàng

Xin chào, tôi là Hoàng Ngọc Minh, hiện đang làm BrSE, tại công ty Toyota, Nhật Bản. Những gì tôi viết trên blog này là những trải nghiệm thực tế tôi đã đúc rút ra được trong cuộc sống, quá trình học tập và làm việc. Các bài viết được biên tập một cách chi tiết, linh hoạt để giúp bạn đọc có thể tiếp cận một cách dễ dàng nhất. Hi vọng nó sẽ có ích hoặc mang lại một góc nhìn khác cho bạn[...]

1 bình luận

Translate »