📜  更改所有表 postgres 的架构 - SQL (1)

📅  最后修改于: 2023-12-03 14:55:14.725000             🧑  作者: Mango

更改所有表 postgres 的架构 - SQL

如果你需要更改所有表的 Postgres 架构,那么下面的 SQL 就是你需要的,其中 public 是参考架构,你可以替换为你需要的架构名称。

DO $$ 
DECLARE 
  table_name text; 
BEGIN 

  FOR table_name IN SELECT tablename FROM pg_tables WHERE schemaname = 'public' 
  LOOP 
    EXECUTE 'ALTER TABLE public.' || table_name || ' SET SCHEMA new_schema'; 
  END LOOP; 

END $$;

这段代码使用了一个循环语句,遍历了数据库中所有架构下的所有表,在这些表的名称前加上新的架构名。

如果你想要修改的仅仅是某一个架构下的表,那么可以使用条件筛选语句。

DO $$ 
DECLARE 
  table_name text; 
BEGIN 

  FOR table_name IN SELECT tablename FROM pg_tables WHERE schemaname = 'old_schema' 
  LOOP 
    EXECUTE 'ALTER TABLE old_schema.' || table_name || ' SET SCHEMA new_schema'; 
  END LOOP; 

END $$;

这段代码中的 old_schema 是被筛选架构的名字,而 new_schema 则是更新后的名称。

这些 SQL 代码可以用于批量修改数据库中的所有表的架构,为管理和维护数据库带来了方便。