首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 建立含自增欄位(Identity Column)的表格完整教學

     編輯:DB2 教學

在 DB2 中建立具備自動遞增主鍵的表格,需使用 GENERATED ALWAYS AS IDENTITY 子句。本文提供完整建表範例、參數說明與實測插入示範,助您快速掌握 Identity Column 設計要點。

一、建表語法範例

CREATE TABLE test (
    id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (
        START WITH 1,
        INCREMENT BY 1,
        NO CACHE
    ),
    name VARCHAR(20)
);

關鍵參數說明

參數 說明
START WITH初始值(預設 1)
INCREMENT BY遞增間距(預設 1,不可為 0)
NO CACHE不快取序號,確保連續性(效能略低但無間隙)
CACHE n預先配置 n 個序號(預設 20),提升效能但重啟可能造成間隙
MINVALUE / MAXVALUE序號下限/上限
CYCLE / NO CYCLE達上限後是否循環(預設 NO CYCLE)

二、實測插入與查詢流程

1. 初始狀態:表格為空

db2 => select * from test
ID          NAME
----------- --------------------
0 條記錄已選擇。

2. 插入第一筆資料(僅指定 name)

db2 => insert into test(name) values('wjz')
DB20000I  SQL命令成功完成。

db2 => select * from test
ID          NAME
----------- --------------------
           1 wjz
1 條記錄已選擇。

3. 插入第二筆資料

db2 => insert into test(name) values('xlp')
DB20000I  SQL命令成功完成。

db2 => select * from test
ID          NAME
----------- --------------------
           1 wjz
           2 xlp
2 條記錄已選擇。

可見 id 欄位自動產生 1、2 兩個連續值,無需手動指定。

三、進階用法提示

  • GENERATED BY DEFAULT:允許手動指定值,若未提供則自動產生;適合資料遷移場景。
  • ALTER TABLE ... ALTER COLUMN ... SET GENERATED ...:既有表格亦可後加身分欄位(需重組表)。
  • 效能考量:高併發寫入建議使用 CACHE 100 以上,降低鎖競爭。

小結

DB2 的 Identity Column 機制完整支援自增主鍵需求,語法彈性高、參數豐富。善用 NO CACHE 保證連續性,或 CACHE 提升吞吐,視業務特性調整即可。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved