PostgreSQL

Lệnh PostgreSQL ALTER SCHEMA

Lệnh PostgreSQL ALTER 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 sử dụng lệnh ALTER SCHEMA để thay đổi schema đã được tạo.

1. Thay đổi tên schema

1. Thay đổi tên schema

Đầu tiên là đổi tên schema bằng lệnh ALTER SCHEMA. Sử dụng định dạng sau:

ALTER SCHEMA name RENAME TO new_name;

Đổi tên schema hiện tại (name) thành tên của schema mới (new_name).

Để đổi tên schema, vai trò thực thi lệnh phải là superuser hoặc có đặc quyền CREATE trên cơ sở dữ liệu nơi schema được tạoschema được tạo.

Trước khi thực hiện đổi tên schema, chúng ta sẽ kết nối đến database mydb để kiểm tra xem mydb đang có những schema nào.

Lệnh PostgreSQL ALTER SCHEMA - Hình 1

Thay đổi tên schema myschema2 thành tên mới là schema_minhhoangblog

ALTER SCHEMA myschema2 RENAME TO schema_minhhoangblog;

Lệnh PostgreSQL ALTER SCHEMA - Hình 2

2. Thay đổi chủ sở hữu (<em>owner</em>) của schema

2. Thay đổi chủ sở hữu (owner) của schema

Sử dụng định dạng sau của lệnh ALTER SCHEMA để thay đổi chủ sở hữu của schema:

ALTER SCHEMA name OWNER TO { new_owner | CURRENT_USER | SESSION_USER };

Để thay đổi chủ sở hữu của schema, vai trò thực thi lệnh phải là superuser hoặc chủ sở hữu schema và là thành viên của chủ sở hữu mới, trực tiếp hoặc gián tiếp và có đặc quyền CREATE trên cơ sở dữ liệu nơi tạo schema.

Trước tiên, chúng ta sẽ kiểm tra các schema hiện có của database mydb

Lệnh PostgreSQL ALTER SCHEMA - Hình 3

Thay đổi owner của schema myschema thành owner mới là minhminh

ALTER SCHEMA myschema OWNER TO minhminh;

Lệnh PostgreSQL ALTER SCHEMA - Hình 4

※Trường hợp chỉ muốn lấy các schema do người dùng tạo, không bao gồm schema public có sẵn mặc định thì chúng ta sử dụng truy vấn sau:

SELECT 
  * 
FROM 
    pg_catalog.pg_namespace
WHERE 
    nspacl is NULL AND
    nspname NOT LIKE 'pg_%'
ORDER BY 
    nspname;

Lệnh PostgreSQL ALTER SCHEMA - Hình 5

Cách di chuyển (move) table từ schema này qua schema khác

Lệnh \dn xem danh sách các schema hiện có trong database sampledata:

Lệnh PostgreSQL ALTER SCHEMA - Hình 6

Lệnh \dt xem hiện tại các table của database sampledata đang thuộc schema nào:

Lệnh PostgreSQL ALTER SCHEMA - Hình 7

Chúng ta cả 2 table tblclasstblstudents đều thuộc schema public.

Bây giờ sẽ dùng lệnh ALTER TABLE để di chuyển table tblclass sang schema myschema:

ALTER TABLE tblclass
    SET SCHEMA myschema;

Lệnh PostgreSQL ALTER SCHEMA - Hình 8

và chúng ta đã di chuyển thành công.

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[...]

Translate »