从PHP获取MySQL主键和外键约束?

时间:2012-10-10 06:23:39

标签: php mysql pdo

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

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

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

(我使用InnoDB作为架构)。

1 个答案:

答案 0 :(得分:6)

您可以通过查询information_schema表格获取关键信息:

SELECT * 
FROM information_schema.KEY_COLUMN_USAGE 
WHERE REFERENCED_TABLE_NAME = 'my_table_name'

MySQL: How to I find all tables that have foreign keys that reference particular table.column AND have values for those foreign keys?

您可以使用SHOW TABLE

获取主键
SHOW INDEX FROM my_table_name 
WHERE key_name = 'PRIMARY'

MySQL: Determine Table's Primary Key Dynamically

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

你可以用它来加速它:

SET GLOBAL innodb_stats_on_metadata = 0

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