PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Làm cách nào để loại bỏ tất cả các bảng trong psql (thiết bị đầu cuối tương tác PostgreSQL) bắt đầu bằng một từ phổ biến?

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ó.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể tìm thấy điểm nhập có tên 'InterlockedIncrement' trong DLL 'kernel32.dll' - [email protected] 64 bit

  2. PostgreSQL initdb (Khởi tạo cơ sở dữ liệu) trên Linux

  3. SpringBoot + Kotlin + Postgres và JSONB:org.hibernate.MappingException:Không có ánh xạ phương ngữ cho loại JDBC

  4. Không thể kết nối với PostgreSQL thông qua cơ sở dữ liệu nodejs cục bộ, nó đột ngột ngừng hoạt động trên mac

  5. java.sql.SQLException:Kết nối đã bị đóng