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

Cắt bỏ tất cả các bảng trong cơ sở dữ liệu Postgres

FrustratedWithFormsDesigner là chính xác, PL / pgSQL có thể làm điều này. Đây là tập lệnh:

CREATE OR REPLACE FUNCTION truncate_tables(username IN VARCHAR) RETURNS void AS $$
DECLARE
    statements CURSOR FOR
        SELECT tablename FROM pg_tables
        WHERE tableowner = username AND schemaname = 'public';
BEGIN
    FOR stmt IN statements LOOP
        EXECUTE 'TRUNCATE TABLE ' || quote_ident(stmt.tablename) || ' CASCADE;';
    END LOOP;
END;
$$ LANGUAGE plpgsql;

Điều này tạo ra một hàm được lưu trữ (bạn chỉ cần thực hiện điều này một lần) mà sau đó bạn có thể sử dụng như sau:

SELECT truncate_tables('MYUSER');


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đặc quyền siêu người dùng mặc định của postgres bị xóa vô tình - tôi có thể lấy lại không?

  2. Làm thế nào để chọn mảng 1d từ mảng 2d?

  3. Điều cần kiểm tra xem Khả năng sử dụng bộ nhớ PostgreSQL có cao không

  4. PostgreSQL Streaming vs Logical Replication - So sánh

  5. PG ::DuplicateTable:ERROR:các bài đăng liên quan đã tồn tại