KEY_COLUMN_USAGE
表格描述哪些鍵欄位具有限制。此表格不提供有關功能鍵部分(因為它們是表達式)的資訊,且表格僅提供有關欄位的資訊。
KEY_COLUMN_USAGE
表格具有以下欄位:
CONSTRAINT_CATALOG
限制所屬的目錄名稱。此值永遠為
def
。CONSTRAINT_SCHEMA
限制所屬的綱要(資料庫)名稱。
CONSTRAINT_NAME
限制的名稱。
TABLE_CATALOG
表格所屬的目錄名稱。此值永遠為
def
。TABLE_SCHEMA
表格所屬的綱要(資料庫)名稱。
TABLE_NAME
具有限制的表格名稱。
COLUMN_NAME
具有限制的欄位名稱。
如果限制是外來鍵,則這是外來鍵的欄位,而不是外來鍵參考的欄位。
ORDINAL_POSITION
欄位在限制內的順序位置,而不是欄位在表格內的順序位置。欄位位置從 1 開始編號。
POSITION_IN_UNIQUE_CONSTRAINT
對於唯一和主鍵限制,此欄位為
NULL
。對於外來鍵限制,此欄位是被參考表格中鍵的順序位置。REFERENCED_TABLE_SCHEMA
限制所參考的綱要名稱。
REFERENCED_TABLE_NAME
限制所參考的表格名稱。
REFERENCED_COLUMN_NAME
限制所參考的欄位名稱。
假設有兩個表格名稱為 t1
和 t3
,它們具有以下定義:
CREATE TABLE t1
(
s1 INT,
s2 INT,
s3 INT,
PRIMARY KEY(s3)
) ENGINE=InnoDB;
CREATE TABLE t3
(
s1 INT,
s2 INT,
s3 INT,
KEY(s1),
CONSTRAINT CO FOREIGN KEY (s2) REFERENCES t1(s3)
) ENGINE=InnoDB;
對於這兩個表格,KEY_COLUMN_USAGE
表格有兩列:
其中一列
CONSTRAINT_NAME
='PRIMARY'
、TABLE_NAME
='t1'
、COLUMN_NAME
='s3'
、ORDINAL_POSITION
=1
、POSITION_IN_UNIQUE_CONSTRAINT
=NULL
。對於
NDB
:此值永遠為NULL
。另一列
CONSTRAINT_NAME
='CO'
、TABLE_NAME
='t3'
、COLUMN_NAME
='s2'
、ORDINAL_POSITION
=1
、POSITION_IN_UNIQUE_CONSTRAINT
=1
。