获取表中的外键

时间:2012-10-04 05:09:33

标签: c# mysql

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

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';

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

但我需要特定的数据库,样本表foreign keys

2 个答案:

答案 0 :(得分: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

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

what's a schema and a database in mysql

答案 1 :(得分: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'