问题标签 [database-sequence]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
61 浏览

postgresql - 序列存在,但我在 information_schema.sequences (PostgreSQL) 中找不到它

我在我的 PostgreSQL(版本 13)数据库的模式(我们称之为my_schema )中创建了一个序列(我们称之为my_seq )。我确定该序列存在,因为我可以在查询的结果集中找到它

但是,如果我运行以下查询

my_seq 不在结果集中。我使用创建序列的同一用户运行了两个查询。

任何人都可以帮我找到一个解释吗?

0 投票
0 回答
26 浏览

postgresql - 自定义序列 - Postgres

问题陈述:

我们有多个表,其中包含一个名为“代码”的列,它是一个标识列。我们的应用程序由我们的多个位置/客户运行,并且它们使用相同的数据库。由于表的这种同时访问,我们的身份列正在遭受每个客户端的差距。

举个例子:

客户端 C1 创建了一条记录,他得到的代码为“1”,同时,客户端 C2 创建了一条记录,他的代码为“2”,这是错误的。他应该将代码设为“1”,这是因为两个客户端都使用同一个表而导致的。

可能的解决方案:

我们可以使用触发器来维护自定义序列,但在这种情况下,我们必须为每个表维护触发器,这很乏味,我们可以使用序列。

通过采用序列,我们有可能制作这样一个可以采用函数的序列,并且该函数可以在内部捕获表名,而无需将表作为参数传递。

或者

如果有任何可以解决此问题的最佳解决方案,请推荐。

谢谢

0 投票
2 回答
91 浏览

oracle - 在触发器中使用 Oracle DB 序列的带有 Pk 的 Spring Boot 实体

我需要有关在使用触发器和序列进行 PK 的 Oracle DB 表中持久化实体的帮助。到目前为止,我从其他 stackoverflow 问题中尝试了这些:

这种方法有效。它找到 PK 的最大值并将该值增加 1。但是,这不会更新 Db 序列,从而在某些时候导致“约束违反”错误。

这种方法对我也不起作用。可悲的是,当 Db 序列尝试在内部运行“select MY_DB_SEQ.nextval from dual”时,它无法访问并导致错误。为什么无法访问?去问数据库管理员:)

看起来我唯一的选择是在实体 PK 属性中传递空值,以便在 ID 为空时使用数据库序列获取下一个值的数据库触发器在数据库记录中分配 PK 值。

如何为@Id 传递空值?当然这是抛出错误,因为需要。我可以为此使用任何其他注释吗?

如果这是不可能的,我应该尝试什么其他方法?

谢谢你的帮助。

更新

我找不到另一种方法,有一个用户无法访问的 DB Seq,并且当它需要将 NULL 传递给 PK 以使 DB 使用检查 PK 中的 NULL 值的触发器来运行 seq nexval 时。在授予对 DB Seq 的访问权限后,这种方法当然有效。

0 投票
1 回答
85 浏览

java - 可以将@Id添加到映射到Spring boot Jpa中没有主键列的表的实体吗?

我已经开始研究旧版 oracle 数据库并使用 Spring boot Jpa 尝试在CHANNELMGR_REQUEST没有身份的表 ( ) 中插入新行:

在此处输入图像描述

该表有一个数字列 ( CM_ISN) 并且在逻辑上可能是一个身份候选者,但由于某种原因我无法触及数据库。

我发现了一个现有的序列 ( CHANNELMGR_SEQ),它也用于为该CM_ISN列生成值。

在此处输入图像描述

所以我决定使用该序列并在我的等效 POJO 中添加一些注释,如下所示,并将序列映射到该CM_ISN列。但不接触数据库:

在此处输入图像描述

我的存储库是这样的:

在此处输入图像描述

插入行时,成功调用序列但得到如下异常:

在此处输入图像描述

我的问题:

  1. 修改实体并将@Id 添加到不在等效表中的实体是错误的吗?
  2. 我收到错误的代码有什么问题?

PS:很抱歉放了图片而不是实际的源代码,原因是开发机器无法访问互联网。

0 投票
1 回答
27 浏览

postgresql - 一旦 id 不同,Postgres 序列就会重置

我正在尝试制作一个 Postgres 序列,一旦它链接到的项目的 id 发生更改,它将重置,例如:

我一般不太了解 PSQL 或 SQL,也找不到类似的问题,非常感谢任何帮助!

0 投票
1 回答
29 浏览

postgresql - PostgreSQL 列来跟踪某种类型的出现次数

我必须在已经存在的数据库中创建一个新列,以跟踪某种类型的出现次数。这是一个更清楚的例子:

我正在尝试使此列能够获取特定值的所有 EQID 并获得它们的位置。例如:在上面的示例中,假设您想要获得第一个等于 4 的 EQID,并且在此示例中它的 ETCD 等于“abc”,通过一个按钮成为第二个等于 4 的 EQID,第二个EQID 成为第一个,我会增加 ETCD 等于“abc”的那个,而减少 ETCD 等于“jkl”的那个。我试过到处寻找答案,但我没有找到可以帮助我的答案。谢谢你的帮助。顺便说一句,必须保存此列,它不能是临时列或类似的东西。

0 投票
1 回答
14 浏览

spring-boot - 在springboot中使用embeddedId内的序列

我有下一个问题->我的数据库上有一个带有复合ID的表...假设(Id1,Id2,Id3,Id4),Id4是由数据库上的序列生成的...

我的问题是,在 Spring Boot 中,我生成了实体“Table1”和相应的“Table1Id”,但是当我想从序列中添加相应的 GeneratedValue 时,并没有生成任何东西。

我在互联网上寻找,我发现 GeneratedValue 在没有 @Id 注释的情况下无法工作,但也许有一些方法可以解决这个问题。

谢谢和对不起我的英语。

0 投票
2 回答
249 浏览

postgresql - 如何创建 PostgreSQL 表 id 字段并为其定义自定义序列?

我的表定义为:

在某些情况下,我想在将数据插入 PostgreSQL 的表之前获取下一个 id 值。所以,我为此创建了一个序列:

我可以从序列中获取下一个 val,然后在插入时使用它。但是,如果我在不提供 id 的情况下插入一行,它需要按相同的顺序自动递增。

如何创建 PostgreSQL 表 id 字段并为其定义自定义序列?

0 投票
1 回答
48 浏览

postgresql - 带有 SELECT 子句的 PostgreSQL ALTER SEQUENCE

我正在尝试更改数据库序列并使用复杂SELECT语句返回的值重新启动它。这是我准备复制问题的简化示例:

当我运行此查询时,我收到以下错误:

为什么我会收到此错误?是否可以根据SELECT语句的返回值设置序列的值?

0 投票
1 回答
103 浏览

sql - 如何修复 NEXTVAL 在插入查询中返回 null 但在 PostgreSQL 中单独执行时返回正确值?

当我执行以下插入查询时:

我得到以下输出:

应该由NEXTVAL函数结果填充的第三列被发送为空值,这违反了某个非空值约束。

但是,当我NEXTVAL像这样独立执行时:

该函数返回正确的值,如下图所示:

下一个瓦尔