【问题标题】:Update existing sequence values form starting with 1?更新从 1 开始的现有序列值形式?
【发布时间】:2017-06-23 07:02:06
【问题描述】:

我可以更新以 1 开头的现有序列值吗?

示例:在表一序列列中以序列形式 5001 开头,但我想更改从 1 开始的值形式。

如果有可能怎么办?

【问题讨论】:

  • 当您的序列生成表中已有的值(例如 5001)时,您将如何处理它?还是您的意思是您要更新该列中的所有现有值而这与an Oracle sequence 无关? (在这种情况下......列是主键吗?如果这些都是合成的,为什么要更新?)
  • 我正在使用 NuoDB 数据库,该列已经包含重复的序列号,所以我想让它成为不重复的数字。最后我想从该列中的 1 开始重置整个序列。跨度>
  • 那么你为什么用 [oracle11g] 标记你的问题?

标签: sql nuodb


【解决方案1】:

我认为您最简单的方法是删除表并重新加载。在重新加载之前指定一个主键。这将防止重复插入。

【讨论】:

    【解决方案2】:

    您可以使用ALTER SEQUENCE 更改序列起始值。但是,将起点设置回去会导致与表中的现有值发生冲突。此外,NuoDB 不一定按顺序分发序列号。鉴于它是一个分布式数据库,序列号生成器将极大地影响性能,因为每个 TE 都需要检查某个主数据库以获取下一个序列号。 NuoDB 所做的是分发一个 TE 使用的序列块,然后在用完时请求另一个块。如果 TE 关闭并重新启动,它将获得一个新块。

    【讨论】:

      猜你喜欢
      • 2013-03-04
      • 2017-02-06
      • 2015-11-27
      • 2018-09-24
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 2019-02-01
      • 1970-01-01
      相关资源
      最近更新 更多