我试图在存储过程中测试序列是否已经存在.

IF EXISTS SEQUENCE seq_name
    RAISE EXCEPTION 'sequence % already exists!', seq_name
END IF;

我try 了上面片段的几种变体,但运气不佳.我肯定给谷歌的术语不对,因为我似乎找不到关于这个话题的任何东西.感谢您的帮助!

推荐答案

您应该能够查询pg_类表,查看relname是否存在.

IF EXISTS (SELECT 0 FROM pg_class where relname = '<my sequence name here>' )
THEN
  --stuff here
END IF;

Postgresql相关问答推荐

将几个左连接合并为一个

如何在Common Lisp中使用Postmodern在表更改时获得通知?

将具有自定义类型的表从一种模式复制到另一种模式

Postgres 对 WHERE 子句并行使用两个索引

仅使用 ssl 连接到 Postgresql 数据库

在Postgre中的链接服务器上执行远程查询

忽略 split_part 的第 n 个分隔符之后

如何在 kubernetes 中安全地重启 postgresql 容器?

在 jOOQ 中使用 $$ 引用字符串

如何在不同的行中显示两列,避免重复并省略空条目

如何在plpgsql中找到一行中的最大值?

从 PostgreSQL 中的每个组中抽取 N 个样本

使用 postgresql Select 整数作为位和状态表

使用包含重复元素的数组 Select 重复值

在执行 postgresql 函数时提交事务

为什么 PostgreSQL 数组访问在 C 中比在 PL/pgSQL 中快得多?

H2 postgresql mode模式似乎不起作用

SQL:列为某个值时的唯一约束

如何使用 psql 执行 *.sql 文件

根据 Helm 图表设置值