1.清空schema下的表数据:
DO $$
-- 匿名代码块,在这里可以进行变量声明、循环、条件判断和动态执行 SQL,像写Java业务代码一样
DECLARE
r RECORD;
BEGIN
-- 把public schema下的表明都查出来,放到r变量中
FOR r IN
SELECT tablename
FROM pg_tables
WHERE schemaname = 'public'
LOOP
-- TRUNCATE TABLE xxx 快速清空整张表的数据
-- RESTART IDENTITY:重置自增序列
-- CASCADE:处理外键关联的表
EXECUTE 'TRUNCATE TABLE public.' || quote_ident(r.tablename) || ' RESTART IDENTITY CASCADE';
END LOOP;
END $$;
2.备份schema下的所有表的结构和数据
pg_dump -U postgres -d 数据库名 -n schema名 > backup.sql
3.恢复schema下的所有表的结构和数据
psql -U postgres -d 数据库名 < backup.sql

Comments | NOTHING