【问题标题】:Primary key auto increment reset when table data dropped表数据删除时主键自动增量重置
【发布时间】:2014-06-24 14:50:36
【问题描述】:

我正在创建一个表,其中主键将是一个自动递增的 int。这是针对将从每晚删除的临时表。当日常作业第二天重新加载表时,下一个主键会重置回1,还是会从前一天的最大值继续?

【问题讨论】:

    标签: sql db2


    【解决方案1】:

    如果您的表中有一个自动递增的主键列,则结果将取决于您使用的删除方法。使用“TRUNCATE TABLE”方法时,自动递增种子值将重置回 1。使用“DELETE FROM”方法时,自动递增种子将保持原样(例如,如果最后插入记录的自动递增字段是 123 下一个插入的记录将被设置为 124)。

    【讨论】:

    • TRUNCATE thetable RESTART IDENTITY; 将重新启动序列。如果没有RESTART IDENTITY,它将从中断处继续。
    • 答案表明截断会自动重新启动身份。那么是否可以通过重新启动身份删除,或者我必须截断并重新启动身份?
    • 答案可能取决于平台或版本。在 DB2 LUW 上,TRUNCATE 语句not 重置身份序列,并且没有RESTART IDENTITY 子句。据我所知,这同样适用于 DB2 z/OS。
    猜你喜欢
    • 2013-11-04
    • 2010-10-18
    • 2018-11-30
    相关资源
    最近更新 更多