如何在mysql中获取表的外键

lem*_*ant 5 php mysql database foreign-keys parent-child

我正在创建一个类,它从数据库中获取一个表,并将其显示到一个网页,尽可能多的功能.我想支持的一件事就是让类检测表中的哪些列对它们有外键约束,这样它就可以转到那些表,获取它们的所有值并在select中使用它们编辑这些字段时调用的-box,以避免某人违反外键约束,

主要问题是发现哪些字段对它们有外键约束,以及它们指向哪些表.有谁知道如何做到这一点???

谢谢,

Lemiant

dev*_*ler 11

获取给定表的外键的简单方法:

SELECT
    `column_name`, 
    `referenced_table_schema` AS foreign_db, 
    `referenced_table_name` AS foreign_table, 
    `referenced_column_name`  AS foreign_column 
FROM
    `information_schema`.`KEY_COLUMN_USAGE`
WHERE
    `constraint_schema` = SCHEMA()
AND
    `table_name` = 'your-table-name-here'
AND
    `referenced_column_name` IS NOT NULL
ORDER BY
    `column_name`;
Run Code Online (Sandbox Code Playgroud)


Dan*_*man 5

INFORMATION_SCHEMA 数据库包含所有其他数据库的完整架构的详细信息,包括约束:

http://dev.mysql.com/doc/refman/5.0/en/information-schema.html

您还可以运行 SHOW CREATE TABLE 查询来获取创建表的 SQL,包括其约束。