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

DB2 資料庫常用 DDL 腳本範例:欄位新增、修改、刪除

     編輯:DB2 教學

DB2 資料庫常用 DDL 腳本範例:欄位新增、修改、刪除

DB2 執行 SQL 腳本時,建議在腳本開頭加入分號 ; 作為陳述式分隔符,避免解析錯誤。以下提供結構變更常用範本,db2inst1 為 Schema 名稱,請依實際環境替換。

腳本範本

; -- 腳本開始,強制分隔符
-- 刪除欄位
ALTER TABLE db2inst1.student DROP COLUMN age;

-- 修改欄位長度/型別
ALTER TABLE db2inst1.student ALTER COLUMN name SET DATA TYPE VARCHAR(100);

-- 新增欄位
ALTER TABLE db2inst1.student ADD COLUMN class VARCHAR(30);
; -- 腳本結束

關鍵說明

  1. 分號前置:DB2 CLP 執行腳本(db2 -tvf script.sql)時,若腳本第一行非分號,首條陳述式可能解析失敗。慣例在腳本最前面加 ;。
  2. Schema 前綴:db2inst1.student 明確指定 Schema,避免隱含解析錯誤(特別在多 Schema 環境)。
  3. 資料型別變更限制:SET DATA TYPE 僅允許相容轉換(如 VARCHAR(50) → VARCHAR(100)、INT → BIGINT),不相容型別需建立新欄位遷移資料後再切換。
  4. DROP COLUMN 為線上操作(DB2 9.7+),但會鎖定表格,大表建議維護窗口執行。

進階:批次結構變更腳本範例

;
-- 1. 新增多欄位
ALTER TABLE db2inst1.employee
  ADD COLUMN hire_date DATE,
  ADD COLUMN dept_code SMALLINT,
  ADD COLUMN status CHAR(1) DEFAULT 'A';

-- 2. 修改欄位精度
ALTER TABLE db2inst1.employee
  ALTER COLUMN salary SET DATA TYPE DECIMAL(12,2);

-- 3. 刪除廢棄欄位
ALTER TABLE db2inst1.employee
  DROP COLUMN old_flag;

-- 4. 重組並更新統計 (建議緊接執行)
CALL SYSPROC.ADMIN_CMD('REORG TABLE db2inst1.employee');
CALL SYSPROC.ADMIN_CMD('RUNSTATS ON TABLE db2inst1.employee AND INDEXES ALL');

執行後記憶體 REORG 回收空間、RUNSTATS 更新統計,確保優化器擁有最新資訊。

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