gpt4 book ai didi

DB2 自动生成的列/GENERATED ALWAYS 对序列的优缺点

转载 作者:行者123 更新时间:2023-12-04 02:37:52 24 4
gpt4 key购买 nike

早些时候我们使用' 始终生成 ' 用于生成主键的值。但是现在建议我们应该使用序列来填充主键的值,而不是使用 'GENERATED ALWAYS' 。您认为造成这种变化的原因是什么?这只是一个选择问题吗?

早期代码:

CREATE TABLE SCH.TAB1
(TAB_P INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1, NO CACHE),
.
.
);

现在它是
CREATE TABLE SCH.TAB1
(TAB_P INTEGER ),
.
.
);

现在在插入时,通过序列生成 TAB_P 的值。

最佳答案

我倾向于使用标识列而不是序列,但我会为您比较两者。

序列可以出于任何目的生成数字,而标识列严格附加到表中的列。

由于序列是一个独立的对象,它可以为多个表(或其他任何东西)生成数字,并且在删除任何表时不受影响。当具有标识列的表被删除时,没有关于该标识列最后分配的值的内存。

一个表只能有一个标识列,所以如果你想将多个序列号记录到同一个表的不同列中,序列对象可以处理。

数据库中序列号生成器的最常见要求是为一行分配一个技术键,这由标识列很好地处理。对于更复杂的数字生成需求,序列对象提供了更大的灵活性。

关于DB2 自动生成的列/GENERATED ALWAYS 对序列的优缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1026936/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com