Tôi luôn cảm thấy thoải mái hơn khi tạo một script sql mà tôi có thể xem lại và kiểm tra trước khi chạy nó hơn là dựa vào việc tải plpgsql vừa phải để nó không làm hỏng cơ sở dữ liệu của tôi. Một cái gì đó đơn giản trong bash chọn tên bảng từ danh mục, sau đó tạo câu lệnh thả cho tôi. Vì vậy, đối với 8.4.x, bạn sẽ nhận được truy vấn cơ bản này:
SELECT 'drop table '||n.nspname ||'.'|| c.relname||';' as "Name"
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind IN ('r','v','S','')
AND n.nspname <> 'pg_catalog'
AND n.nspname <> 'information_schema'
AND n.nspname !~ '^pg_toast'
AND pg_catalog.pg_table_is_visible(c.oid);
Bạn có thể thêm mệnh đề where vào. ( where c.relname ilike 'bubba%'
)
Đầu ra giống như sau:
Name
drop table public.a1;
drop table public.a2;
Vì vậy, hãy lưu nó vào tệp .sql và chạy nó với psql -f filename.sql