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

浪淘沙7个月前数据库172

一、创建 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;


相关文章

清空表内容

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

navicat 创建带密码的sqlite数据库

navicat 创建带密码的sqlite数据库

第一步:第二步创建一个具有密码的sqlite数据库使用sqlitestudio打开的选项...

sqlite id 设为uuid 默认值

 lower(hex(randomblob(16)))...

sqlite安装及创建数据库

sqlite安装及创建数据库

首先进入Sqlite官方网址:https://www.sqlite.org/download.html然后下载下面框起来的两个压缩文件 下载完成后解压接下来去配置环境变量,右键此电脑->...

postgresql 创建设id自增

CREATE SEQUENCE "public"."pz_chsi_area_id_seq" START WITH 1...

发表评论    

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