nhân bản SQL
ạn đang mở Query Tool của database Learn_English, điều đó không sao. Lỗi của bạn không phải do mở sai chỗ mà do database experiment đang có 2 kết nối nên PostgreSQL không cho dùng làm Template.
Có 2 cách:
Cách 1: Ngắt các kết nối rồi nhân bản (khuyên dùng)
Bước 1
Mở Query Tool của database postgres (hoặc Learn_English như bạn đang mở cũng được).
Bước 2
Chạy lệnh sau:
SELECT pg_terminate_backend(pid)
FROM pg_stat_activity
WHERE datname = 'experiment'
AND pid <> pg_backend_pid();
Nếu thành công sẽ trả về:
true
true
Bước 3
Tiếp tục chạy:
CREATE DATABASE experiment_sk
WITH TEMPLATE experiment
OWNER postgres;
Sau đó Refresh Databases là sẽ có:
experiment
experiment_sk
Cách 2: Dùng Backup/Restore trong pgAdmin
Chuột phải vào
experiment
↓
Backup...
Lưu file .backup
↓
Chuột phải
Databases
↓
Create
Database...
Đặt tên
experiment_sk
↓
Chuột phải
experiment_sk
↓
Restore...
Chọn file backup vừa lưu.
Theo ảnh của bạn
Mình thấy phía trên đang mở tới 2 tab của database experiment:
experiment/postgres@...
experiment/postgr...
Đó rất có thể chính là 2 session đang giữ kết nối, nên PostgreSQL báo:
There are 2 other sessions using the database.
👉 Bạn thử đóng hai tab experiment trong pgAdmin trước, sau đó chạy lại lệnh CREATE DATABASE.
Cho mình hỏi thêm:
Bạn có đang chạy Flask/Python kết nối tới database experiment không? Nếu có thì phải tắt chương trình Flask trước, vì ứng dụng đó cũng giữ kết nối đến database và sẽ ngăn việc nhân bản.

