KEY_COLUMN_USAGE
KEY_COLUMN_USAGE 表描述了列的键约束,比如主键约束。
1. USE information_schema;
2. DESC key_column_usage;
1. +-------------------------------+--------------+------+------+---------+-------+
2. | Field | Type | Null | Key | Default | Extra |
3. +-------------------------------+--------------+------+------+---------+-------+
4. | CONSTRAINT_CATALOG | varchar(512) | NO | | NULL | |
5. | CONSTRAINT_SCHEMA | varchar(64) | NO | | NULL | |
6. | CONSTRAINT_NAME | varchar(64) | NO | | NULL | |
7. | TABLE_CATALOG | varchar(512) | NO | | NULL | |
8. | TABLE_SCHEMA | varchar(64) | NO | | NULL | |
9. | TABLE_NAME | varchar(64) | NO | | NULL | |
10. | COLUMN_NAME | varchar(64) | NO | | NULL | |
11. | ORDINAL_POSITION | bigint(10) | NO | | NULL | |
12. | POSITION_IN_UNIQUE_CONSTRAINT | bigint(10) | YES | | NULL | |
13. | REFERENCED_TABLE_SCHEMA | varchar(64) | YES | | NULL | |
14. | REFERENCED_TABLE_NAME | varchar(64) | YES | | NULL | |
15. | REFERENCED_COLUMN_NAME | varchar(64) | YES | | NULL | |
16. +-------------------------------+--------------+------+------+---------+-------+
17. 12 rows in set (0.00 sec)
1. SELECT * FROM key_column_usage WHERE table_schema='mysql' and table_name='user';
1. *************************** 1. row ***************************
2. CONSTRAINT_CATALOG: def
3. CONSTRAINT_SCHEMA: mysql
4. CONSTRAINT_NAME: PRIMARY
5. TABLE_CATALOG: def
6. TABLE_SCHEMA: mysql
7. TABLE_NAME: user
8. COLUMN_NAME: Host
9. ORDINAL_POSITION: 1
10. POSITION_IN_UNIQUE_CONSTRAINT: NULL
11. REFERENCED_TABLE_SCHEMA: NULL
12. REFERENCED_TABLE_NAME: NULL
13. REFERENCED_COLUMN_NAME: NULL
14. *************************** 2. row ***************************
15. CONSTRAINT_CATALOG: def
16. CONSTRAINT_SCHEMA: mysql
17. CONSTRAINT_NAME: PRIMARY
18. TABLE_CATALOG: def
19. TABLE_SCHEMA: mysql
20. TABLE_NAME: user
21. COLUMN_NAME: User
22. ORDINAL_POSITION: 2
23. POSITION_IN_UNIQUE_CONSTRAINT: NULL
24. REFERENCED_TABLE_SCHEMA: NULL
25. REFERENCED_TABLE_NAME: NULL
26. REFERENCED_COLUMN_NAME: NULL
27. 2 rows in set (0.00 sec)
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:唯一约束和主键约束为空。对于外键约束,此列是被引用的表的键的序号位置。REFERENCED_TABLE_SCHEMA:约束引用的数据库的名称。目前在 TiDB 中,除了外键约束,其它约束此列的值都为nil。REFERENCED_TABLE_NAME:约束引用的表的名称。目前在 TiDB 中,除了外键约束,其它约束此列的值都为nil。REFERENCED_COLUMN_NAME:约束引用的列的名称。目前在 TiDB 中,除了外键约束,其它约束此列的值都为nil。
