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)
INFORMATION_SCHEMA 数据库包含所有其他数据库的完整架构的详细信息,包括约束:
http://dev.mysql.com/doc/refman/5.0/en/information-schema.html
您还可以运行 SHOW CREATE TABLE 查询来获取创建表的 SQL,包括其约束。