Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获得数据库中所有列的列表,以及它';s引用的表/列,以及它是否为主键且没有重复项?(MYSQL)_Mysql - Fatal编程技术网

如何获得数据库中所有列的列表,以及它';s引用的表/列,以及它是否为主键且没有重复项?(MYSQL)

如何获得数据库中所有列的列表,以及它';s引用的表/列,以及它是否为主键且没有重复项?(MYSQL),mysql,Mysql,使用information\u schema,我希望该表类似于以下内容: IS_PRIMARY|TABLE_NAME|COLUMN_NAME|REFERENCED_TABLE_NAME|REFERENCED_COLUMN_NAME ------------------------------------------------------------------------------ | | |

使用
information\u schema
,我希望该表类似于以下内容:

IS_PRIMARY|TABLE_NAME|COLUMN_NAME|REFERENCED_TABLE_NAME|REFERENCED_COLUMN_NAME
------------------------------------------------------------------------------
          |           |          |                     |
我有很多主键也是外键(用于父子表和许多表)。我有很多外键不是主键,反之亦然。我试图得到所有列的列表,它们的关键位置,并且没有重复项

我一直在玩查询,但无法获得我想要的内容,例如,我尝试了:

SELECT COLUMNS.TABLE_NAME,COLUMNS.COLUMN_NAME,COLUMN_KEY,REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME 
FROM information_schema.COLUMNS 
inner join information_schema.KEY_COLUMN_USAGE 
on COLUMNS.TABLE_NAME=KEY_COLUMN_USAGE.TABLE_NAME AND COLUMNS.COLUMN_NAME=KEY_COLUMN_USAGE.COLUMN_NAME 
WHERE KEY_COLUMN_USAGE.TABLE_SCHEMA='myDatabase'
但这有重复项,也有一些缺失值。尝试获取一个看起来像这样的表的困难在于,同时是主键和外键的键在数据库中有两行,但我不希望重复


请帮忙

你说的“重复”到底是什么意思?你的意思是如果它是主键,不也作为外键返回吗?或者,如果您字面上的意思是返回的行是完全重复的,那么为什么
DISTINCT
不起作用呢?我的意思是,如果列既是主键又是外键,我希望它作为一行返回,并带有“true”(或类似的内容)在
IS_PRIMARY
列和
REFERENCED_TABLE_NAME
REFERENCED_列_NAME
中返回值。现在,如果一个列同时是主键和外键,那么它会为同一列返回两个不同的行,一个是主键,另一个是外键。我仍然不清楚您想要什么。如果一个键列被多个表引用怎么办?如果引用的列不是键列,那该怎么办?一列如何(现实地)同时是“关键列”和“外键列”?我建议您在中创建一个简单的示例模式,将链接与所需的输出一起发布到您的问题中,并在此处发布一条消息,以便我知道您已使用该信息更新了Q