我在LUW上使用DB2 v9.
我有一个像这样定义的列:
"ID" BIGINT NOT NULL GENERATED BY DEFAULT
AS IDENTITY (START WITH 1, INCREMENT BY 1, CACHE 20,
NO MINVALUE, NO MAXVALUE, NO CYCLE, NO ORDER),
我想知道下次将记录插入表时确定ID列的下一个值的最佳方法.
我将使用此信息编写一个脚本,对IDENTITY仍然完整的表进行"健全性"检查,并且其下一个值大于ID列中的最大值.
我不想盲目地重置价值.如果表没有通过完整性检查,我希望得到通知,这样我就可以确定导致IDENTITY被"解雇"的原因.
小智 1
你无法确定下一个身份。即使您可以,在尝试创建新记录时也会面临数据不同步的风险。唯一要做的就是创建一条新记录并获取新身份,进行检查,然后使用其余数据更新该记录。
您可以使用 SELECT IDENT_CURRENT('yourtablename') 来获取最后生成的一个。这与上面的警告具有相同的警告。这在 T-SQL 中有效,但在 DB2 风格中不确定。