我正在使用PDO在mysql中尝试获取外部assoc的表名。例如,我有:
用户表
+------------+----------+------+-----+-----+----------------+
| Field | Type | Null | Key | AI | Foreign Keys |
+------------+----------+------+-----+-----+----------------+
| id | int(255) | NO | PRI | yes | |
| username | char(16) | NO | | | |
| password | char(32) | NO | UNI | | |
| group | int(255) | NO | MUL | | mytable.group |
| created | datetime | NO | | | |
+------------+----------+------+-----+-----+----------------+组表
+------------+----------+------+-----+-----+----------------+
| Field | Type | Null | Key | AI | Foreign Keys |
+------------+----------+------+-----+-----+----------------+
| id | int(255) | NO | PRI | YES | |
| name | char(16) | NO | UNI | | |
| description| TEXT | YES | | | |
+------------+----------+------+-----+-----+----------------+我想以动态方式获取外表assoc(users.group => group )的名称。显示列和描述命令不显示关联。
如果有人知道怎么做,我将不胜感激。谢谢!
发布于 2012-08-22 06:58:31
SHOW CREATE table users,显示表的所有信息,但不是在一个有组织的数组中。我找到了一种使用SQL动态获取所有assoc数据的方法:
SELECT
ke.column_name col,
ke.referenced_table_schema assoc_db,
ke.referenced_table_name assoc_table,
ke.referenced_column_name assoc_col
FROM
information_schema.KEY_COLUMN_USAGE ke
WHERE
ke.referenced_table_name IS NOT NULL
AND ke.table_schema='YOUR_DATABASE_NAME'
AND ke.table_name='YOUR_TABLE_NAME'我的示例将返回:
array(
public 'col' => string 'group' (length=5) //field with foreign data
public 'assoc_db' => string 'mytable' (length=6) //foreign db
public 'assoc_table' => string 'group' (length=5) //foreign table
public 'assoc_col' => string 'id' (length=2) //foreign field
);发布于 2012-08-22 06:15:18
试试这个:
SHOW CREATE TABLE usershttps://stackoverflow.com/questions/12063809
复制相似问题