gpt4 book ai didi

Postgresql:@GeneratedValue 如何在 PostgreSQL 中工作?

转载 作者:行者123 更新时间:2023-11-29 13:58:19 25 4
gpt4 key购买 nike

我是 postgresql 的新手。 在使用 Ebean 的 playframework 中,我使用了 mysql 和自动生成的值,在那种情况下实际上是自动递增的。我得到的序列是 1,2,3,4...

但在 Postgresql 中,生成的值似乎没有这样的属性。似乎对于每个 session ,它都以大于前一个 session 的数字开始,然后自动递增。本例中的顺序为 1,21,41,42,61,81,101,102,103...

我的代码段:

@Entity
public class Post extends Model{

@Id
@GeneratedValue
@Required
public int id;

我正在使用:

  1. 游戏框架 2.3.4
  2. Ebean
  3. Postgres 9.3

我真的不知道原因。这种值(value)观有什么特别的原因吗?这有什么问题吗?我需要切换到自动增量吗?如果可以,我该怎么做?

最佳答案

K,所以您使用的是 AUTO 策略,因为它是默认策略。我对 Ebean 了解不多,但是使用 Hibernate,创建了一个名为 hibernate_sequence 的序列。

此序列将由其他实体共享,因此这可能是造成差距的部分原因。出于性能原因,您的 ORM 也可能会预先分配序列值。

无论哪种方式,我总是对 Postgres 使用 IDENTITY 策略,即使 Postgres 不使用 IDENTITY。但是,它确实为每个表创建了一个序列,这通常是您想要的。

关于Postgresql:@GeneratedValue 如何在 PostgreSQL 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27008703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com