Tập lệnh này sẽ tạo ra các lệnh DDL để loại bỏ tất cả chúng:
SELECT 'DROP TABLE ' || t.oid::regclass || ';'
FROM pg_class t
-- JOIN pg_namespace n ON n.oid = t.relnamespace -- to select by schema
WHERE t.relkind = 'r'
AND t.relname ~~ E'doors\_%' -- enter search term for table here
-- AND n.nspname ~~ '%myschema%' -- optionally select by schema(s), too
ORDER BY 1;
Diễn viên t.oid::regclass
làm cho cú pháp hoạt động đối với các mã nhận dạng chữ hoa và chữ thường hỗn hợp, các từ dành riêng hoặc các ký tự đặc biệt trong tên bảng. Nó cũng ngăn chặn việc đưa vào SQL và thêm tên lược đồ vào trước khi cần thiết. Tìm hiểu thêm về các loại mã nhận dạng đối tượng trong sách hướng dẫn
.
Giới thiệu về đường dẫn tìm kiếm giản đồ.
Bạn cũng có thể tự động hóa việc thả, nhưng điều đó thật không khôn ngoan không phải để kiểm tra những gì bạn thực sự xóa trước khi thực hiện.
Bạn có thể thêm CASCADE
cho mỗi câu lệnh để DROP tùy thuộc vào các đối tượng (chế độ xem và tham chiếu khóa ngoại). Nhưng, một lần nữa, đó là không khôn ngoan trừ khi bạn biết rất rõ những gì bạn đang làm. Các ràng buộc khóa nước ngoài không phải là tổn thất lớn, nhưng điều này cũng sẽ loại bỏ hoàn toàn các quan điểm phụ thuộc. Không có CASCADE
bạn nhận được thông báo lỗi thông báo cho bạn biết đối tượng nào ngăn bạn bỏ bảng. Và bạn có thể giải quyết nó.