Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.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
Sql 信息_模式:这可以用于在同一数据库的所有表中查找所有相同的命名列吗_Sql_Information Schema - Fatal编程技术网

Sql 信息_模式:这可以用于在同一数据库的所有表中查找所有相同的命名列吗

Sql 信息_模式:这可以用于在同一数据库的所有表中查找所有相同的命名列吗,sql,information-schema,Sql,Information Schema,我得到了一个新的数据库,里面有500多张表。我可以使用INFORMATION_模式执行一个查询,列出所有表,并在数据库中的所有表中标识那些相同的命名列。因此,本质上,我希望有一个所有表的列表,并标识那些具有常用名称列的表。您可以自连接系统视图信息\u架构。列: select ta.column_name, ta.table_name, tb.table_name, from information_schema.columns ta inner join infor

我得到了一个新的数据库,里面有500多张表。我可以使用INFORMATION_模式执行一个查询,列出所有表,并在数据库中的所有表中标识那些相同的命名列。因此,本质上,我希望有一个所有表的列表,并标识那些具有常用名称列的表。

您可以
自连接
系统视图
信息\u架构。列

select 
    ta.column_name,
    ta.table_name,  
    tb.table_name,
from information_schema.columns ta
inner join information_schema.columns tb 
    on  ta.column_name = tb.column_name 
    and ta.table_name != tb.table_name
order by 
    ta.column_name, 
    ta.table_name,
    tb.table_name
这将为您提供在多个表中使用的所有列以及相应的表名

如果只需要表名,则:

select ta.table_name,  tb.table_name
from information_schema.columns ta
inner join information_schema.columns tb 
    on  ta.column_name = tb.column_name 
    and ta.table_name != tb.table_name
group by ta.table_name,  tb.table_name
order by ta.table_name,  tb.table_name

注意:您可能希望在
表\u schema
上添加一个筛选器,以将查询限制为应用程序中使用的架构。

您使用的是哪种产品?“SQL”只是一种查询语言,不是特定数据库产品的名称,不同供应商之间的信息模式也不相同。请为您正在使用的数据库产品添加一个数据库,但是我是否能够从信息模式中收集表的大小(行数),或者我是否可以单独查询每个表?