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

浪淘沙3个月前数据库102

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

ubuntu sqlserver 解决中文乱码问题

ubuntu sqlserver 解决中文乱码问题

1、检查系统本地化设置locale如果发现 LANG 或 LC_ALL 不是中文,如 zh_CN.UTF-8,需要设置正确的本地化。2、设置系统本地化为中文编辑 /etc/default/locale...

postgresql 怎么设置用户,拒绝连上其它库

1、用 超级用户(postgres)执行:SELECT datname,        has_database_pr...

postgresql 创建id自增,id恢复最大

CREATE SEQUENCE stu_id_seq SELECT setval(   'stu_id_seq', &nbs...

postgresql 创建设id自增

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

postgresql 删除数据,并且序号恢复从1开始

TRUNCATE TABLE tpl_template_class RESTART IDENTITY; ALTER SEQUENCE ...

发表评论    

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