我有一个mysql数据库,它有250个表。我想运行一个查询来检索: tableName;FieldName;ConstaintName (主键或外键)。
我可以使用information_schema.TABLE_CONSTRAINTS检索constarint类型,但是对于内部连接,我不知道应该使用什么。
完成这项任务的最佳方法是什么?
编辑:非约束名称。应该是CONSTRAINT_TYPE而不是ConstaintName。所以我们只能看到(主键或外键)。
发布于 2015-11-07 23:31:44
您可以使用信息_模式键_立柱_用法表。
SELECT
table_name AS TableName,
column_name AS ColumnName,
Constraint_name as ConstraintName
FROM
information_schema.key_column_usage
WHERE table_schema = 'database_name'基于OP要求的
SELECT DISTINCT(TC.table_name) AS TableName, KC.column_name as ColumnName,
TC. CONSTRAINT_TYPE AS ConstraintType
FROM
information_schema.table_constraints TC,
information_schema.key_column_usage KC
WHERE
TC.CONSTRAINT_TYPE IN ('FOREIGN KEY', 'PRIMARY KEY')
and KC.table_name = TC.table_name and KC.TABLE_SCHEMA = TC.TABLE_SCHEMA
and KC.CONSTRAINT_NAME = TC.CONSTRAINT_NAME
and KC.table_schema = DATABASE();https://dba.stackexchange.com/questions/120412
复制相似问题