Tôi có một cơ sở dữ liệu với phiên bản cũ của PostGIS đã được cài đặt trong đó. Tôi muốn dễ dàng bỏ tất cả các chức năng trong cơ sở dữ liệu (tất cả đều là từ PostGIS). Có một cách đơn giản để làm điều này? Thậm chí chỉ cần trích xuất một danh sách các tên hàm sẽ có thể chấp nhận được vì tôi chỉ có thể thực hiện một câu lệnh DROP FUNCTION
lớn.Thả tất cả các chức năng từ cơ sở dữ liệu Postgres
18
A
Trả lời
25
Một fine answer to this question can be found here:
SELECT 'DROP FUNCTION ' || ns.nspname || '.' || proname
|| '(' || oidvectortypes(proargtypes) || ');'
FROM pg_proc INNER JOIN pg_namespace ns ON (pg_proc.pronamespace = ns.oid)
WHERE ns.nspname = 'my_messed_up_schema' order by proname;
3
Cũng như đã có một postgis.sql
enabler install script, đó cũng là một kịch bản uninstall_postgis.sql
gỡ bỏ cài đặt.
psql -d [yourdatabase] -f /path/to/uninstall_postgis.sql
Cảnh báo: Chuẩn bị xem các cột/dữ liệu hình học/địa lý của bạn biến mất!
Các vấn đề liên quan
- 1. Làm thế nào để xóa tất cả các cơ sở dữ liệu trên Postgres?
- 2. PLSQL - Thả tất cả các đối tượng cơ sở dữ liệu của người dùng
- 3. Thả TẤT CẢ các trình kích hoạt từ Postgres DB?
- 4. Sao chép cơ sở dữ liệu trong postgres
- 5. Kết nối cơ sở dữ liệu Postgres từ MySQL Workbench
- 6. Chuyển đổi cơ sở dữ liệu Postgres thông thường thành cơ sở dữ liệu không gian
- 7. Nhận danh sách tất cả các chức năng và thủ tục trong cơ sở dữ liệu Oracle
- 8. Thả cơ sở dữ liệu SQL Server
- 9. Cơ sở dữ liệu Lập trình chức năng ở Clojure
- 10. Thả Người dùng từ Cơ sở dữ liệu SQL Server?
- 11. Làm thế nào để thả tất cả các bảng trong cơ sở dữ liệu mà không làm rơi cơ sở dữ liệu?
- 12. Cơ sở dữ liệu lớn trong lập trình chức năng
- 13. Node.js + postgres quản lý cơ sở dữ liệu giao dịch
- 14. Chức năng Cơ sở dữ liệu VS Tuyên bố Case
- 15. Hoạt động trên tất cả các cơ sở dữ liệu từ vỏ mongo
- 16. Thả tất cả các đối tượng trong cơ sở dữ liệu SQL Server thuộc về các lược đồ khác nhau?
- 17. Làm thế nào để xóa tất cả các bảng trong cơ sở dữ liệu MySQL?
- 18. Postgres tạo cơ sở dữ liệu người dùng
- 19. Cách xem tất cả các bảng trong cơ sở dữ liệu HSQLDB?
- 20. nhập tệp osm vào cơ sở dữ liệu postgres/postgis
- 21. Thả xuống-Chọn cho bảng cơ sở dữ liệu
- 22. Làm cách nào để thả hoặc tạo cơ sở dữ liệu từ clojure.java.jdbc?
- 23. Đặt lại cơ sở dữ liệu (xóa tất cả), sau đó gieo một cơ sở dữ liệu
- 24. Chức năng đệ quy để tạo mảng đa chiều từ kết quả cơ sở dữ liệu
- 25. Cách điền danh sách thả xuống HTML với các giá trị từ cơ sở dữ liệu
- 26. Cách xóa cơ sở dữ liệu postgres khỏi heroku
- 27. Cơ sở dữ liệu đám mây Postgres Plus và Dịch vụ cơ sở dữ liệu quan hệ Amazon (Amazon RDS)
- 28. Làm thế nào để thả một cơ sở dữ liệu mẫu từ PostgreSQL?
- 29. Xóa tất cả các hàng trong bảng khỏi bảng cơ sở dữ liệu SQLite
- 30. Tìm nạp dữ liệu từ cơ sở dữ liệu MySQL tới danh sách thả xuống html
Thông thường, 'ms.nspname = 'public'' áp dụng. – Drux
SQL ở trên sẽ thất bại đối với trường hợp không thấp hơn hoặc không phải là tên hàm/lược đồ chữ và số. Sử dụng quote_ident hoặc định dạng tốt hơn ('DROP FUNCTION% I.% I (% s);', nspname, proname, oidvectortypes (proargtypes)) để nhận các mã định danh SQL được trích dẫn chính xác. –