0

我创建了一个脚本来显示特定表中的外键。

SELECT  i.CONSTRAINT_NAME FROM information_schema.TABLE_CONSTRAINTS i
LEFT JOIN information_schema.KEY_COLUMN_USAGE k ON
i.CONSTRAINT_NAME = k.CONSTRAINT_NAME WHERE i.CONSTRAINT_TYPE = 'FOREIGN KEY'
AND i.TABLE_NAME = 'sample';

当我在主机中执行此命令时,它会显示在所有具有tablename的数据库中找到的外键约束列表"sample"

但我需要特定的数据库,示例表foreign keys

4

2 回答 2

1

只需在最后添加

AND i.table_schema = '<the name of your database which is a schema>'

编辑 :

将左连接更改为

LEFT JOIN information_schema.KEY_COLUMN_USAGE
   ON i.CONSTRAINT_NAME = k.CONSTRAINT_NAME AND 
      i.TABLE_SCHEMA = k.TABLE_SCHEMA

因为您可以在不同的模式中找到具有相同名称的约束。

什么是 mysql 中的模式和数据库

于 2012-10-04T05:17:57.010 回答
0

在运行此查询之前需要选择数据库。以下可能会有所帮助。

USE YourDatabaseName

SELECT  i.CONSTRAINT_NAME
FROM information_schema.TABLE_CONSTRAINTS i
LEFT JOIN information_schema.KEY_COLUMN_USAGE k
ON i.CONSTRAINT_NAME = k.CONSTRAINT_NAME
WHERE i.CONSTRAINT_TYPE = 'FOREIGN KEY'
AND i.TABLE_NAME = 'sample'
于 2012-10-04T05:18:17.273 回答