Bài viết này sẽ mô tả cách sử dụng lệnh ALTER DATABASE để sửa đổi cơ sở dữ liệu đã được tạo.
Xem thêm: https://www.postgresql.org/docs/current/sql-alterdatabase.html
1. Thay đổi cài đặt cho từng cơ sở dữ liệu
Đầu tiên là thay đổi cài đặt cho từng cơ sở dữ liệu. Sử dụng định dạng sau:
ALTER DATABASE name [ [ WITH ] option [ ... ] ] option: ALLOW_CONNECTIONS datallowconn CONNECTION LIMIT datconnlimit IS_TEMPLATE datistemplate
※Vai trò thực thi lệnh phải là superuser hoặc chủ sở hữu cơ sở dữ liệu.
Trước khi thay đổi, hãy thử lấy danh sách cơ sở dữ liệu đã tạo và số lượng kết nối đồng thời từ pg_database – một trong những danh mục hệ thống (system catalog).
SELECT datname, datconnlimit FROM pg_database;
Xem thêm: Xem danh sách các cơ sở dữ liệu đã tạo
Bây giờ sử dụng lệnh ALTER DATABASE để thay đổi số lượng kết nối đồng thời cho cơ sở dữ liệu mydb thành 3 bằng lệnh:
ALTER DATABASE mydb CONNECTION LIMIT 3;
Và kết quả là cơ sở dữ liệu mydb số lượng kết nối đồng thời đã thay đổi thành 3.
2. Thay đổi tên cơ sở dữ liệu
Tiếp theo để đổi tên cơ sở dữ liệu. Sử dụng định dạng sau:
ALTER DATABASE name RENAME TO new_name;
※Vai trò thực thi lệnh phải là superuser hoặc chủ sở hữu cơ sở dữ liệu và có các đặc quyền CREATEDB.
Bạn không thể thay đổi tên cơ sở dữ liệu đang được kết nối.
Chúng ta sẽ đổi tên cơ sở dữ liệu mydb3 ở hình trên thành minhhoangblog. Làm như sau:
ALTER DATABASE mydb3 RENAME TO minhhoangblog;
Sau khi lấy danh sách cơ sở dữ liệu từ pg_database để xác nhận, thì có thể thấy tên cơ sở dữ liệu đã được thay đổi.
3. Thay đổi chủ sở hữu của cơ sở dữ liệu
Tiếp theo là thay đổi chủ sở hữu của cơ sở dữ liệu. Sử dụng định dạng sau:
ALTER DATABASE name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
※Vai trò thực thi lệnh phải là superuser hoặc chủ sở hữu cơ sở dữ liệu 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 CREATEDB.
Ở hình trên, chúng ta thấy rằng cơ sở dữ liệu minhhoangblog hiện thuộc sở hữu của user postgres. Để thay đổi chủ sở hữu sang user minhminh. Làm như sau:
ALTER DATABASE minhhoangblog OWNER TO minhminh;
Để kiểm tra thay đổi, chúng ta có thể sử dụng lệnh:
¥l minhhoangblog;
4. Các thay đổi khác
Lệnh ALTER DATABASE có các định dạng khác sau đây. Bạn có thể dùng nếu cần nhé.
ALTER DATABASE name SET TABLESPACE new_tablespace ALTER DATABASE name SET configuration_parameter { TO | = } { value | DEFAULT } ALTER DATABASE name SET configuration_parameter FROM CURRENT ALTER DATABASE name RESET configuration_parameter ALTER DATABASE name RESET ALL