有没有办法从mysql-database中获取主键字段的名称?例如:
我有一张这样的桌子:
+----+------+
| id | name |
+----+------+
| 1 | Foo1 |
| 2 | Foo2 |
| 3 | Foo3 |
+----+------+
其中字段id是主键(它有自动递增功能,但我不能使用它)。如何在php中检索名为"id“的字段?
发布于 2010-02-26 20:03:15
一种更好的方法是使用SHOW KEYS
,因为您并不总是可以访问information_schema。以下是工作原理:
SHOW KEYS FROM table WHERE Key_name = 'PRIMARY'
Column_name将包含主键的名称。
发布于 2010-02-26 19:44:03
以下是主键列的名称
SELECT k.column_name
FROM information_schema.table_constraints t
JOIN information_schema.key_column_usage k
USING(constraint_name,table_schema,table_name)
WHERE t.constraint_type='PRIMARY KEY'
AND t.table_schema='YourDatabase'
AND t.table_name='YourTable';
发布于 2010-02-26 19:52:15
SELECT kcu.column_name, kcu.ordinal_position
FROM information_schema.table_constraints tc
INNER JOIN information_schema.key_column_usage kcu
ON tc.CONSTRAINT_CATALOG = kcu.CONSTRAINT_CATALOG
AND tc.CONSTRAINT_SCHEMA = kcu.CONSTRAINT_SCHEMA
AND tc.CONSTRAINT_NAME = kcu.CONSTRAINT_NAME
WHERE tc.table_schema = schema() -- only look in the current schema
AND tc.constraint_type = 'PRIMARY KEY'
AND tc.table_name = '<your-table-name>' -- specify your table.
ORDER BY kcu.ordinal_position
https://stackoverflow.com/questions/2341278
复制相似问题