我正在使用PDO / PHP / MySQL构建与Smarty集成的数据网格应用程序。
是否有一种快速方便的方法(使用db模式或某些PDO命令)在PHP中获取:
(我使用InnoDB作为架构)。
答案 0 :(得分:6)
您可以通过查询information_schema
表格获取关键信息:
SELECT *
FROM information_schema.KEY_COLUMN_USAGE
WHERE REFERENCED_TABLE_NAME = 'my_table_name'
您可以使用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/