【问题标题】:Sequenced column not incrementing (SQL Server 2012)序列列不递增 (SQL Server 2012)
【发布时间】:2015-06-16 05:18:23
【问题描述】:

我正在尝试将 id 列添加到现有表中,因为需要它来解决 Hibernate 的问题。因此,我想在该表中添加一个 id 列,这将是该表的主键,并且每一行都会获得一个从 1 开始并递增直到表中的最后一行的值。但是,该列目前仅将每一行的值设为零 (0)。我怎样才能让它正确增加?谢谢。

我有以下 SQL 查询:

ALTER TABLE service_history
ADD id BIGINT NOT NULL DEFAULT nextval('service_history_seq')
GO
PRIMARY KEY (id)
CREATE SEQUENCE service_history_seq AS BIGINT START WITH 1 INCREMENT BY 1

在 ServiceHistory 实体中,我有以下代码:

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "serviceHistorySeq")
@SequenceGenerator(name = "serviceHistorySeq", sequenceName = "service_history_seq", allocationSize = 1)
private Long id;

【问题讨论】:

    标签: jpa sql-server-2012 entity sequence alter-table


    【解决方案1】:

    看起来您可能会将 MYSQL 或 Oracle 与 Microsoft SQL 混淆。你想要一个像这样编码的标识列

    ALTER TABLE service_history ADD id BIGINT IDENTITY(1,1)
    

    这是link

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-28
      • 2017-03-24
      • 2019-02-14
      • 1970-01-01
      • 1970-01-01
      • 2014-09-14
      • 2012-06-15
      相关资源
      最近更新 更多