DB2 中 ROW-ID 和 SEQUENCE 的用途


問題:如何在 DB2 列中為每插入的新行自動生成唯一值?

解決方案

我們可以透過在 DB2 表中實現一種邏輯,使其中一列在插入每行新資料時自動生成值。此列可以用作主鍵,因此對於 DB2 表的隨機訪問非常有用。此邏輯可以透過 ROW-ID 和 SEQUENCE 來實現。

可以將 DB2 表的任何一列定義為 ROW-ID 型別,之後 DB2 將自動為插入的行分配一個新 ID。分配的 ID 在整個表中保持唯一。SEQUENCE 也可以用於實現此目的。在使用 SEQUENCE 的情況下,DB2 為行分配的 ID 在整個資料庫中都是唯一的,而不僅僅是單個表。

示例

ROW-ID

如果我們將 ORDERS DB2 表的 ORDER_ID 列宣告為 ROW-ID,則 DB2 將根據為每插入到此表的新行定義的條件自動生成 ORDER_ID 列的唯一值。ROW-ID 定義的列將具有在整個表中唯一的數值。


SEQUENCE

如果我們有一個包含 4 個表的 DB2 資料庫。每個表分別儲存來自南北東西四個地區的訂單詳細資訊。每個表的 ORDER_ID 列可以標記為 SEQUENCE。DB2 將為這些表中插入的每一行新資料分配 ORDER_ID 列的唯一值,並且分配的值在整個資料庫中將保持唯一。

更新於:2020年11月30日

瀏覽量 1K+

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告