【发布时间】:2014-06-24 14:50:36
【问题描述】:
我正在创建一个表,其中主键将是一个自动递增的 int。这是针对将从每晚删除的临时表。当日常作业第二天重新加载表时,下一个主键会重置回1,还是会从前一天的最大值继续?
【问题讨论】:
我正在创建一个表,其中主键将是一个自动递增的 int。这是针对将从每晚删除的临时表。当日常作业第二天重新加载表时,下一个主键会重置回1,还是会从前一天的最大值继续?
【问题讨论】:
如果您的表中有一个自动递增的主键列,则结果将取决于您使用的删除方法。使用“TRUNCATE TABLE”方法时,自动递增种子值将重置回 1。使用“DELETE FROM”方法时,自动递增种子将保持原样(例如,如果最后插入记录的自动递增字段是 123 下一个插入的记录将被设置为 124)。
【讨论】:
TRUNCATE thetable RESTART IDENTITY; 将重新启动序列。如果没有RESTART IDENTITY,它将从中断处继续。
TRUNCATE 语句not 重置身份序列,并且没有RESTART IDENTITY 子句。据我所知,这同样适用于 DB2 z/OS。