1

我正在使用 PDO/PHP/MySQL 构建与 Smarty 集成的数据网格应用程序。

有没有一种快速方便的方法(使用 db 模式或一些 PDO 命令)在 PHP 中获取:

  • 表的主键
  • 表的外键约束列表?

(我使用 InnoDB 作为模式)。

4

1 回答 1

6

您可以通过查询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'

MySQL:动态确定表的主键

在具有大量数据库/表的服务器上查询information_schema表可能会很慢。

您可以使用它来加快速度:

SET GLOBAL innodb_stats_on_metadata = 0

http://www.mysqlperformanceblog.com/2011/12/23/solving-information_schema-slowness/

于 2012-10-10T06:30:18.010 回答