DROP TABLE 是 DB2 中移除表格的標準指令,但其執行會連帶影響多種相依物件。本文詳細說明刪除表格的語法、連鎖效應與實務範例,助您謹慎操作、避免資料遺失。
一、基本語法
DROP TABLE <表名>;
範例:刪除 DEPARTMENT 表
DROP TABLE DEPARTMENT
二、執行 DROP TABLE 後的連鎖影響
當表格被刪除,系統目錄 SYSCAT.TABLES 中的對應列會同步移除,並對下列物件產生影響:
- 所有欄位定義隨表格一同移除。
- 基於該表建立的索引全數刪除。
- 相依視圖被標記為不可用,需重建才能恢復。
- 表格權限與從屬視圖權限被隱式撤銷。
- 參考約束(外鍵):該表作為父表或從屬表的所有引用約束皆被刪除。
- 程序包與快取動態 SQL/XQuery:相依套件標記為無效,直到相依物件重建為止;包含階層結構中子表的超表套件亦受影響。
- 觸發器:所有相依觸發器被標記為不可用。
三、實務建議
- 先評估相依性:執行前查詢
SYSCAT.TABDEP、SYSCAT.REFERENCES 確認影響範圍。
- 備份資料:若資料仍有價值,先
EXPORT 或建立備份表。
- 重建策略:準備好視圖、觸發器、索引的 DDL 腳本,以便刪除後快速重建。
- 權限管理:刪除後需重新授予相關使用者/群組權限。
小結
DROP TABLE 雖然語法簡單,但其連鎖效應深遠。生產環境務必先完成影響分析與備份,並在維護窗口執行,以降低業務中斷風險。