我正在使用 PDO/PHP/MySQL 构建与 Smarty 集成的数据网格应用程序。
有没有一种快速方便的方法(使用 db 模式或一些 PDO 命令)在 PHP 中获取:
- 表的主键
- 表的外键约束列表?
(我使用 InnoDB 作为模式)。
您可以通过查询information_schema
表来获取关键信息:
SELECT *
FROM information_schema.KEY_COLUMN_USAGE
WHERE REFERENCED_TABLE_NAME = 'my_table_name'
MySQL:如何找到所有具有引用特定 table.column 的外键并且具有这些外键值的表?
您可以使用以下方法获取主键SHOW TABLE
:
SHOW INDEX FROM my_table_name
WHERE key_name = 'PRIMARY'
在具有大量数据库/表的服务器上查询information_schema
表可能会很慢。
您可以使用它来加快速度:
SET GLOBAL innodb_stats_on_metadata = 0
http://www.mysqlperformanceblog.com/2011/12/23/solving-information_schema-slowness/