📅  最后修改于: 2023-12-03 14:55:14.725000             🧑  作者: Mango
如果你需要更改所有表的 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 代码可以用于批量修改数据库中的所有表的架构,为管理和维护数据库带来了方便。