PostgreSQL常用命令记录

发布于 19 小时前  26 次阅读


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

一沙一世界,一花一天堂。君掌盛无边,刹那成永恒。