postgresql 生成新的schema,并迁称原表至新的schema

浪淘沙2个月前数据库75

一、创建 jy schema

CREATE SCHEMA IF NOT EXISTS jy;
验证:

SELECT schema_name FROM information_schema.schemata WHERE schema_name='jy';

二、一次性生成所有迁移语句

先看看 public 里有多少表:

SELECT tablename
FROM pg_tables
WHERE schemaname='public';

然后生成迁移脚本(复制执行):

SELECT
  'ALTER TABLE public."' || tablename || '" SET SCHEMA jy;'
FROM pg_tables
WHERE schemaname = 'public';

三、序列 & identity 也一起迁移(非常关键)

SELECT
  'ALTER SEQUENCE public."' || sequence_name || '" SET SCHEMA jy;'
FROM information_schema.sequences
WHERE sequence_schema='public';

四、把视图、物化视图也迁移(如果有)

SELECT
  'ALTER VIEW public."' || table_name || '" SET SCHEMA jy;'
FROM information_schema.views
WHERE table_schema='public';

五、设置 search_path(让程序无感)

ALTER DATABASE jtjy SET search_path = jy, public;

验证:
SHOW search_path;


相关文章

postgresql 修正全部表格的自增id,为最大

SELECT   format(     'SELECT setval(%L, COALESCE((SELE...

windows postgresql 迁移数据库

PostgreSQL 数据库的迁移可以通过多种方式进行,具体选择哪种方式取决于你的需求、数据库的大小以及你希望达到的停机时间。以下是几种常见的 PostgreSQL 数据库迁移方法:### 1. 使用...

清空表内容

delete from article_author;dbcc checkident('article_author',reseed,0)...

迁移 qx 表到 qy schema

ALTER TABLE public.qx SET SCHEMA qy;...

postgresql 日期函数

select distinct(TO_CHAR(rq, 'YYYY-MM-DD')) from fz_rl order by...

给表加备注

EXEC sys.sp_addextendedproperty @name=N'MS_Description',@level1type=N'TABLE...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。