批量删除表

 DO $$
DECLARE
d varchar(128);
BEGIN
	FOR d IN select 'drop table '||schemaname||'.'||tablename||';' from pg_tables where schemaname||'.'||tablename like '%public.fc\_o\_%'
	loop
	EXECUTE d;
	END LOOP;
END;
$$

批量修改表

 DO $$
DECLARE
d varchar(128);
BEGIN
	FOR d IN select 'ALTER TABLE '||schemaname||'.'||tablename|| ' ADD COLUMN IF NOT EXISTS "branch" int8 DEFAULT 1;' from pg_tables where schemaname||'.'||tablename like '%public.fc\_item\_%'
	loop
	EXECUTE d;
	END LOOP;
END;
$$

需要注意的是这里的表名带有下划线,要有转义字符

更多推荐