我正在运行快速查询以确保表中的所有外键都引用了索引的字段。
我的代码如下:
select table_name, column_name, index_name from statistics where table_name in (select referenced_table_name from key_column_usage where table_name='table' and table_schema='schema') and column_name in (select referenced_column_name from key_column_usage where table_name='table' and table_schema='schema') order by table_name;
我在多个环境中运行它,但由于某种原因,我在一个特定环境中收到重复结果。但是,这些表都设置相同,所以我不确定是什么导致了这种行为。
有什么建议吗?
答案 0 :(得分:1)
在那个mysql服务器中,您可能有2个具有相同结构的数据库(模式),或者您有多列外键。在外部查询的选择列表中包含table_schema字段以进行确认。
在查询的where子句中使用多列in
运算符或内部联接而不是多个单列in
运算符。