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
。