postgresql批量操作表

批量刪除表

 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;
$$

需要注意的是這裏的表名帶有下劃線,要有轉義字符

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章