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

浪淘沙9个月前数据库220

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


相关文章

ubuntu sqlserver 解决中文乱码问题

ubuntu sqlserver 解决中文乱码问题

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

SQL Server 执行超大数据量的sql文件

记录:cd C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn打开cmdsqlcmd -S "localhost"...

Ubuntu 22.04 卸载SQL Server 数据库

1. 删除 mssql-server 的包sudo apt-get remove mssql-server2. 删除数据库文件sudo rm -rf&...

postgresql 取消id主键和自增后,添加完数据,又恢复自增

ALTER TABLE qy_gw ALTER COLUMN id SET DEFAULT nextval('q...

发表评论    

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