pg_dump 不能用 出现pg_dump: No matching tables were found,pg_dump: schema with OID 1515227 does not exi

2023-10-27

使用sql查询
创建函数,直接复制即可

CREATE OR REPLACE FUNCTION public.show_create_table(
  in_schema_name varchar,
  in_table_name varchar
)
RETURNS text
LANGUAGE plpgsql VOLATILE
AS
$$
  DECLARE
    -- the ddl we're building
    v_table_ddl text;

    -- data about the target table
    v_table_oid int;

    -- records for looping
    v_column_record record;
    v_constraint_record record;
    v_index_record record;
  BEGIN
    -- grab the oid of the table; https://www.postgresql.org/docs/8.3/catalog-pg-class.html
    SELECT c.oid INTO v_table_oid
    FROM pg_catalog.pg_class c
    LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
    WHERE 1=1
      AND c.relkind = 'r' -- r = ordinary table; https://www.postgresql.org/docs/9.3/catalog-pg-class.html
      AND c.relname = in_table_name -- the table name
      AND n.nspname = in_schema_name; -- the schema

    -- throw an error if table was not found
    IF (v_table_oid IS NULL) THEN
      RAISE EXCEPTION 'table does not exist';
    END IF;

    -- start the create definition
    v_table_ddl := 'CREATE TABLE ' || in_schema_name || '.' || in_table_name || ' (' || E'\n';

    -- define all of the columns in the table; https://stackoverflow.com/a/8153081/3068233
    FOR v_column_record IN
      SELECT
        c.column_name,
        c.data_type,
        c.character_maximum_length,
        c.is_nullable,
        c.column_default
      FROM information_schema.columns c
      WHERE (table_schema, table_name) = (in_schema_name, in_table_name)
      ORDER BY ordinal_position
    LOOP
      v_table_ddl := v_table_ddl || '  ' -- note: two char spacer to start, to indent the column
        || v_column_record.column_name || ' '
        || v_column_record.data_type || CASE WHEN v_column_record.character_maximum_length IS NOT NULL THEN ('(' || v_column_record.character_maximum_length || ')') ELSE '' END || ' '
        || CASE WHEN v_column_record.is_nullable = 'NO' THEN 'NOT NULL' ELSE 'NULL' END
        || CASE WHEN v_column_record.column_default IS NOT null THEN (' DEFAULT ' || v_column_record.column_default) ELSE '' END
        || ',' || E'\n';
    END LOOP;

    -- define all the constraints in the; https://www.postgresql.org/docs/9.1/catalog-pg-constraint.html && https://dba.stackexchange.com/a/214877/75296
    FOR v_constraint_record IN
      SELECT
        con.conname as constraint_name,
        con.contype as constraint_type,
        CASE
          WHEN con.contype = 'p' THEN 1 -- primary key constraint
          WHEN con.contype = 'u' THEN 2 -- unique constraint
          WHEN con.contype = 'f' THEN 3 -- foreign key constraint
          WHEN con.contype = 'c' THEN 4
          ELSE 5
        END as type_rank,
        pg_get_constraintdef(con.oid) as constraint_definition
      FROM pg_catalog.pg_constraint con
      JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
      JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
      WHERE nsp.nspname = in_schema_name
      AND rel.relname = in_table_name
      ORDER BY type_rank
    LOOP
      v_table_ddl := v_table_ddl || '  ' -- note: two char spacer to start, to indent the column
        || 'CONSTRAINT' || ' '
        || v_constraint_record.constraint_name || ' '
        || v_constraint_record.constraint_definition
        || ',' || E'\n';
    END LOOP;

    -- drop the last comma before ending the create statement
    v_table_ddl = substr(v_table_ddl, 0, length(v_table_ddl) - 1) || E'\n';

    -- end the create definition
    v_table_ddl := v_table_ddl || ');' || E'\n';

    -- suffix create statement with all of the indexes on the table
    FOR v_index_record IN
      SELECT indexdef
      FROM pg_indexes
      WHERE (schemaname, tablename) = (in_schema_name, in_table_name)
    LOOP
      v_table_ddl := v_table_ddl
        || v_index_record.indexdef
        || ';' || E'\n';
    END LOOP;

    -- return the ddl
    RETURN v_table_ddl;
  END;
$$;

例子

例子
SELECT * FROM public.show_create_table('public', 'example_table');

产生

CREATE TABLE public.example_table (
  id bigint NOT NULL DEFAULT nextval('test_tb_for_show_create_on_id_seq'::regclass),
  name character varying(150) NULL,
  level character varying(50) NULL,
  description text NOT NULL DEFAULT 'hello there!'::text,
  CONSTRAINT test_tb_for_show_create_on_pkey PRIMARY KEY (id),
  CONSTRAINT test_tb_for_show_create_on_level_check CHECK (((level)::text = ANY ((ARRAY['info'::character varying, 'warn'::character varying, 'error'::character varying])::text[])))
);
CREATE UNIQUE INDEX test_tb_for_show_create_on_pkey ON public.test_tb_for_show_create_on USING btree (id);

stack overflow 搬过来的 ,找了好久,亲测好用

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pg_dump 不能用 出现pg_dump: No matching tables were found,pg_dump: schema with OID 1515227 does not exi 的相关文章

  • 将 stdout 和 stderr 捕获到不同的变量中

    是否可以存储或捕获 stdout 和 stderr不同的变量 不使用临时文件 现在我这样做是为了获得标准输出out和标准错误err跑步时some command 但我会 喜欢避免临时文件 error file mktemp out some
  • 为什么我不能在 while 循环内评估?

    我想在循环中创建 bash 别名 其中循环从命令读取行 为了逐行读取输出 我相信我需要将输出通过管道传输到read 然而 当我这样做时 别名不存在 如果我将以下内容包含在我的 bashrc for x in a1 a2 do eval al
  • 在 Linux 中使用仅限 CLI 的工具生成磁盘使用情况图/图表

    在这个问题中 https stackoverflow com questions 32230 tracking down where disk space has gone on linux有人询问如何在 Linux 中显示磁盘使用情况 我
  • 模拟用户输入以使用不同参数多次调用脚本

    我必须使用提供的脚本 该脚本在脚本运行时接受用户输入而不是参数 我无法解决这个问题 脚本的一个例子是 bin bash echo param one read one doSomething echo param two read two
  • 如何“grep”连续流?

    可以用吗grep在连续的流中 我的意思是有点tail f
  • Bash 完成脚本在某些参数选项后完成文件路径

    我正在为命令行工具编写 bash 完成脚本 plink local cur prev opts COMPREPLY cur COMP WORDS COMP CWORD prev COMP WORDS COMP CWORD 1 opts 1
  • 如何在 Bash 中为数组赋值?

    我正在尝试从文本文件中读取值列表 你好 txt 并将它们存储在一个数组中 counter 0 cat hello txt while read line do Unix Array counter line let counter coun
  • bash双括号问题

    我对 bash 脚本非常陌生 在使用双括号时遇到了问题 我似乎无法让它们在 Ubuntu Server 11 10 中工作 我的下面的脚本位于 if test sh 中 bin bash if 14 14 then echo FOO fi
  • 如何在Windows Git shell中运行./script.sh?

    也许这很尴尬 但是当我在 Git shell 中工作时 我无法在 Windows 上运行 sh 文件 也许我必须安装一些东西 但我认为 Git 会支持 bash 命令 我知道 Windows 不使用 sh 文件 我正在执行安装步骤游戏结束
  • 如何拆分一行并重新排列其元素?

    我在一行中有一些数据 如下所示 abc edf xyz rfg yeg udh 我想呈现如下数据 abc xyz yeg edf rfg udh 以便打印备用字段并用换行符分隔 有没有这样的衬里 下列awk脚本可以做到这一点 gt echo
  • 编写脚本时,#!/usr/bin/perl 和 #!/usr/bin/env perl 有什么区别?

    显然 这同样适用于用 python bash sh 等替代 perl 昆汀下面的答案显然是正确的 所以我接受了它 但我想我实际上的意思是 两种使用 的方式的优点和缺点是什么 调用 perl python bash 作为脚本的解释器 有人提到
  • 向伪 shell (pty) 发出命令

    我尝试使用 subprocess popen os spawn 来运行进程 但似乎需要伪终端 import pty master slave pty openpty os write master ls l 应该发送 ls l 到从属终端
  • shell脚本“x$VARIABLE”中x的用途[重复]

    这个问题在这里已经有答案了 我正在查看一些 shell 脚本 comarison shcu 中 x 的用途是什么 if x USER x RUN AS USER then su RUN AS USER c CATALINA HOME bin
  • 如何复制每个扩展名为 X 的文件,同时保留原始文件夹结构? (类Unix系统)

    我正在尝试将每个 HTML 文件从 src 文件夹复制到 dist 文件夹 但是 我想保留原始文件夹结构 如果 dist 文件夹不存在 我想创建一个新文件夹 如果文件夹不存在则创建 d dist mkdir dist 复制每个文件 cp R
  • 在 shell 脚本中查找和替换

    是否可以使用 shell 在文件中搜索然后替换值 当我安装服务时 我希望能够在配置文件中搜索变量 然后在该值中替换 插入我自己的设置 当然 您可以使用 sed 或 awk 来完成此操作 sed 示例 sed i s Andrew James
  • 如何调用位于其他目录的Makefile?

    我正在尝试这样做 我想打电话给 make Makefile存在于其他目录中 abc可以使用位于不同目录中的 shell 脚本的路径 我该怎么做呢 由于 shell 脚本不允许我cd进入Makefile目录并执行make 我怎样才能编写she
  • Linux shell 脚本:十六进制数字到二进制字符串

    我正在 shell 脚本中寻找一些简单的方法来将十六进制数字转换为 0 和 1 字符的序列 Example 5F gt 01011111 是否有任何命令或简单的方法来完成它 或者我应该为其编写一些开关 echo ibase 16 obase
  • 如何让“grep”从文件中读取模式?

    假设有一个很大的文本文件 我只想打印与某些模式不匹配的行 显然 我可以使用egrep v patter1 pattern2 pattern3 现在 如果所有这些模式都在一个文本文件中怎么办 最好的制作方法是什么egrep从文件中读取模式 g
  • 如何使用 bash 显示具有两个子文件夹的文件夹?

    我通过 Cygwin 使用 bash 我有一个大文件夹 a 有很多子文件夹 b 这些子文件夹各有一个或两个子文件夹 c 我想找到所有有两个子文件夹 c 的子文件夹 b 并输出它们 结构如下 a b1 c1 b2 c1 c2 b3 c1 c2
  • shell_exec 的输出被截断为 100 个字符

    当在 shell 中运行以下命令时 curl F file filename http 192 168 0 1 产生以下输出 Accuracy 0 0 1 classification Accuracy 0 0 1 classificati

随机推荐

  • 高可用系统的设计与维护

    author skate time 2011 02 11 高可用系统的设计与维护 对于一个高可用的系统评价 主要体现在架构 功能 性能 安全 维护 兼容性等方面 如何设计维护这样一个高可用系统的 1 一个提供7 24服务的网站架构系统 要避
  • mysql主从 读写_mysql主从-读写分离

    一个完整的MySQL读写分离环境包括以下几个部分 应用程序client database proxy database集群 在本次实战中 应用程序client基于c3p0连接后端的database proxy database proxy负
  • 最新RAD Studio 11.3亚历山大版本上市

    By Marco Cantu February 27 2023 Embarcadero很高兴地宣布RAD Studio 11 Alexandria Release 3的发布 也被称为RAD Studio 11 3 同时发布的还有Delphi
  • k8s集群PHP环境使用

    一 环境介绍 k8s版本 1 15 2 存储 阿里云NAS 测试代码 wordpress 二 下载wordpress和创建好数据库等 1 下载wordpress wget https cn wordpress org latest zh C
  • 异步的AsyncHttpClient使用详解

    背景 前面的一篇文章 同步的HttpClient使用详解 中 提到了服务端通进行网络请求的方式 也讲述了在并发量大的情况下使用HttpClient的连接池来提高性能 此方法虽然很有效果 但是当访问量极大或网络不好的情况下也会出现某些网络请求
  • HyperLPR车牌识别技术算法之车牌粗定位与训练

    关于HyperLPR HyperLPR是一个使用深度学习针对对中文车牌识别的实现 与较为流行的开源的EasyPR相比 它的检测速度和鲁棒性和多场景的适应性都要好于目前开源的EasyPR HyperLPR可以识别多种中文车牌包括白牌 新能源车
  • js分享功能

    需求 页面需要添加分享到 微博 QQ空间 等功能 具体 div class jz blog a class jiathis button qzone QQ空间 a a class jiathis button tsina 新浪微博 a a
  • Cocos Creator性能调优优化集锦

    前言 一 为什么要做性能优化 性能 是一种优秀的能力 唤醒快 运行持久 稳定 这种能力在游戏上能让你的用户感觉很爽 表征表现为加载快 手机不发热 运行流畅 不卡顿 所以 性能优化的终极目标是 让你的用户感觉很爽 当然这种爽你不能以牺牲自己为
  • Docker快速部署Hadoop环境

    Docker安装部署Hadoop环境 通过三个容器来模拟三个节点 最后只保留Master节点实现搭建 安装环境 Ubuntu 22 04 1 LTS 和Docker 23 0 1 安装过程 拉取镜像 docker pull registry
  • 计算机视觉初步认识

    计算机视觉是使用计算机及相关设备对生物视觉的一种模拟 它的主要任务就是通过对采集的图片或视频进行处理以获得相应场景的三维信息 就像人类和许多其他类生物每天所做的那样 从计算机视觉领域可以衍生出大量有用的应用程序 下面是计算机视觉应用程序的一
  • FreeRTOS记录(八、用软件定时器?还是硬件定时器?)

    FreeRTOS软件定时器 相对前面的内容来说 软件定时器还是比较简单的 我们简单测试一下 因为是简单介绍 所以原理和源码的分析不会那么详细 具体可以根据文中API查看源码 使用起来记住创建 启动 回调函数核心步骤即可 增加测试Demo 再
  • 禁止 Cookie 使用 Session,采用 URL 重写,具体解决方案

    先叙述一下 session 的实现原理吧 session 服务器为每个客户端访问开辟的一块内存区域 可以存放一些客户端的一些操作信息 正常情况下在用户通过客户端访问服务器这个过程中 session 一直存活 直到客户端关闭 服务器中的 se
  • TWS耳机充电盒芯片方案、霍尔开关+无线充接收带电量显示方案

    旭鑫胜电子TWS充电盒方案XS016 RX 专门为TWS充电盒设计的无线充电接收方案XS016 RX XS016 RX无线充电接收芯片与锂电池充电管理芯片结合 以满足无线充电盒的设计要求 功能特点 1 符合qi1 2标准协议 2 具有异物检
  • CentOS-6.6-x86_64-minimal.iso镜像下载

    链接 https pan baidu com s 1FKfIvK65KzVxV96Gns7ivA https pan baidu com s 1FKfIvK65KzVxV96Gns7ivA 提取码 zt88
  • 2.1python程序控制-选择结构

    第1关 判断奇偶 任务描述 本关任务 编写一个能判断输入数字奇偶的小程序 相关知识 为了完成本关任务 你需要掌握 python如何进行数字的读取和if else条件控制结构 Begin your code here x int input
  • NNDL 实验五 前馈神经网络(1)二分类任务

    pytorch实现 4 1 神经元 4 1 1 净活性值 使用pytorch计算一组输入的净活性值z 净活性值z经过一个非线性函数f 后 得到神经元的活性值a 使用pytorch计算一组输入的净活性值 代码参考paddle例题 import
  • Hexo_更换主题(Next)

    Hexo 更换主题 Next Hexo更换主题 只需要将主题文件拷贝到自己博客根目录下的themes子目录内 然后修改配置文件 即可将hexo默认的主题更换为自己想要的主题 下载Next 打开git bash here命令提示符 执行 cd
  • 初体验深信服的云桌面

    昨天上午深信服的工程师到这边来安装服务器 本想看一下具体的安装 但是上午有其他事情 没有看成 下午他给我讲了一下具体的使用 我体验了一下深信服的云桌面 总体感觉管理员的维护和客户的使用都比较方便 但是可能是服务器的配置一般 体验谈不上顺滑
  • react的生命周期

    目录 一 初始化阶段 constructor static getDerivedStateFromProps componentWillMount UNSAFE componentWillMount render componentDidM
  • pg_dump 不能用 出现pg_dump: No matching tables were found,pg_dump: schema with OID 1515227 does not exi

    使用sql查询 创建函数 直接复制即可 CREATE OR REPLACE FUNCTION public show create table in schema name varchar in table name varchar RET