db2 系統表的功能
在 db2 資料庫被建立的時候,db2 會建立一些系統表。這些系統表中記錄了所有資料庫物件的資訊,表或檢視的列的資料型別,約束的定義,物件的許可權和物件之間的依賴關係等。這些系統表的模式為 sysibm,其表名以 sys 作為字首。例如: systables、sysviews 等等。db2 為這些系統表建立了相對應的唯讀檢視。這些檢視的模式是 syscat,它們的內容是其相對應的系統表的全部或者部分內容。這些檢視的名字沒有 sys 的字首。例如:syscat.tables 是 sysibm.systables 的檢視。我們可以通過list tables for system
或list tables for schema schemaname
命令檢視所有的系統表和相關的檢視資訊。
其所有的系統表目錄可以在以下**檢視:
syscat.tables:資料庫中物件的資訊,包括 table,view,nickname 和 alias 的一些定義。詳細說明見表 1。
表 1. syscat.tables 檢視的說明
列名資料型別
描述tabschema
varchar(128)
記錄 schema 的名字
tabname
varchar(128)
記錄資料庫物件的名稱。包括表、檢視、別名等
type
char(1)
表示該資料庫物件是表,檢視還是別名 ('t'表示table; 'v'表示 view; 'n' 表示nickname; 'a' 表示 alias。)
colcount
smallint
表或檢視中列的個數……
syscat.views:檢視的定義資訊。詳細說明見表 2。
表 2. syscat.views 檢視的說明
列名資料型別
描述viewschema
varchar(128)
檢視的 schema
viewname
varchar(128)
檢視名稱
readonly
char(1)
檢視是否唯讀:
valid
char(1)
檢視狀態是否合法:
text
clob (64k)
檢視的源程式(ddl)……
syscat.routines:db2 udf,系統方法(system-generated method),使用者定義方法(user-defined method)和儲存過程(sp)的定義。我們可以認為該檢視包含了資料庫中程式的定義。見表 3。
表 3. syscat.routines 檢視的說明
列名資料型別
描述routineschema
varchar(128)
記錄程式的 schema
routinename
varchar(128)
記錄程式名稱
routinetype
char(1)
記錄程式型別:
specificname
varchar(128)
程式例項的名稱(可以指定,也可以由系統自動生成)
valid
char(1)
如果儲存過程依賴的一些物件被刪除或修改了,該儲存過程必須要被重建
text
clob(1m)
如果是用 sql 編寫的程式,該欄位記錄了其建立的 ddl…
表 4 所示的 syscat.routinedep 說明了 db2 udf與其他物件的依賴關係。
表 4. syscat.routinedep 檢視的說明
列名資料型別
描述routineschema
varchar(128)
依賴於其他物件的 db2 程式的 schema
routinename
varchar(128)
依賴於其他物件的 db2 程式的名稱
btype
char(1)
依賴物件的型別:
bschema
varchar(128)
被依賴的物件的 schema
bname
varchar(128)
被依賴的物件的名稱
表 5 所示的 syscat.columns 說明了表或檢視的每乙個列的資訊。
表 5. syscat.columns 檢視的說明
列名資料型別
描述tabschema
varchar(128)
表或檢視的 schema
tabname
varchar(128)
表或檢視名稱
colname
varchar(128)
列名稱keyseq
smallint
記錄列在其表的主鍵的位置
DB2之臨時表
db2支援session臨時表.該錶只能存在於某一session或某一交易上下文中,對其他使用者不可見.db2 v8增加了對臨時表的索引的支援,這對於提公升查詢速度比較有意義 下面舉例子來說明session臨時表的使用 1.在建立session臨時表前,您必須建立臨時表空間 create user ...
DB2 儲存過程建立 系統表
前段時間做了資料表拆分,進行資料遷移,用到一些sql命令,語句記錄下來 db2look是db2用於生成資料庫ddl語句的乙個工具 命令 db2look d dbname a e p i userid w password o d sample.sql db2look d 資料名稱 e 抽取複製資料庫...
DB2學習之表誤刪除恢復
db2 drop表後恢復 資料庫版本 資料庫版本 db2 9.7 目的 由於經常操作不當,引起誤刪表和資料庫,對資料恢復起來很困難,其實測試後也覺得沒什麼挺容易的,特此親自測試,得出一恢復方法,總結如下文旦,如有不當還請及時提出 注意 在恢復之前一定要備份資料庫,在恢復中需要時間截點,不同版本資料庫...