Trong bài đăng này, tôi đang chia sẻ một người dùng PostgreSQL xác định một hàm để cắt ngắn tất cả các Bảng được tạo bởi Người dùng X cụ thể.
Đôi khi, quản trị viên Cơ sở dữ liệu hoặc Nhà phát triển cơ sở dữ liệu chỉ tạo một người dùng cho mục đích thử nghiệm và người dùng TEST này đã tạo N số hàng hoặc bảng thử nghiệm được yêu cầu thả hoặc cắt bớt.
Sử dụng chức năng này, bạn có thể cắt ngắn tất cả các bảng của cơ sở dữ liệu với sự trợ giúp của tham số đầu vào Owner và Schema.có.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | CREATE OR REPLACE FUNCTION fn_TruncateAllTable ( InputUserName CHARACTER VARYING ,InputSchemaName CHARACTER VARYING ) RETURNS void AS $$ DECLARE statements CURSOR FOR SELECT tablename FROM pg_tables WHERE tableowner = InputUserName AND schemaname = InputSchemaName; BEGIN FOR stmt IN statements LOOP EXECUTE 'TRUNCATE TABLE ' || quote_ident(stmt.tablename) || ' CASCADE;'; END LOOP; END; $$ LANGUAGE plpgsql; |