我正在構建一個使用PDO/PHP/MySQL與Smarty集成的數據網格應用程序。從PHP獲取MySQL主鍵和外鍵約束?
有沒有一種快速,便捷的方式(使用DB模式或者一些PDO命令),以獲得在PHP中:
- 表的主鍵
- 一個表的外鍵約束列表?
(我使用InnoDB作爲模式)。
我正在構建一個使用PDO/PHP/MySQL與Smarty集成的數據網格應用程序。從PHP獲取MySQL主鍵和外鍵約束?
有沒有一種快速,便捷的方式(使用DB模式或者一些PDO命令),以獲得在PHP中:
(我使用InnoDB作爲模式)。
您可以通過查詢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/
非常感謝,expecially爲INFORMATION_SCHEMA性能技巧,這是正是我所需要的信息種類。 – Cranio