Mar*_*ine 67 php mysql primary-key
有没有办法从mysql-database获取主键字段的名称?例如:
我有这样一张桌子:
+----+------+
| id | name |
+----+------+
| 1 | Foo1 |
| 2 | Foo2 |
| 3 | Foo3 |
+----+------+
Run Code Online (Sandbox Code Playgroud)
字段id是主键(它有自动增量但我不能使用它).如何在php中检索字段名称"id"?
ale*_*exn 113
更好的方法是使用,SHOW KEYS
因为您并不总是可以访问information_schema.以下作品:
SHOW KEYS FROM table WHERE Key_name = 'PRIMARY'
Run Code Online (Sandbox Code Playgroud)
Column_name将包含主键的名称.
Sve*_*lov 31
这是主键列名
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';
Run Code Online (Sandbox Code Playgroud)
Rol*_*man 16
SELECT key_column_usage.column_name
FROM information_schema.key_column_usage
WHERE table_schema = schema() -- only look in the current db
AND constraint_name = 'PRIMARY' -- always 'PRIMARY' for PRIMARY KEY constraints
AND table_name = '<your-table-name>' -- specify your table.
Run Code Online (Sandbox Code Playgroud)
这个怎么样.
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'Your Database'
AND TABLE_NAME = 'Your Table name'
AND COLUMN_KEY = 'PRI';
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'Your Database'
AND TABLE_NAME = 'Your Table name'
AND COLUMN_KEY = 'UNI';
Run Code Online (Sandbox Code Playgroud)
小智 5
如果您想一次性通过 PHP 动态生成主键列表,而无需遍历您可以使用的每个表
SELECT TABLE_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.key_column_usage
WHERE table_schema = '$database_name' AND CONSTRAINT_NAME = 'PRIMARY'
Run Code Online (Sandbox Code Playgroud)
尽管您确实需要访问 information.schema 才能执行此操作。
归档时间: |
|
查看次数: |
98958 次 |
最近记录: |