如何在MySQL中获取特定表的主键“列名”

mul*_*axp 6 php mysql

我们的系统会为每个用新内容更新或插入的表创建一个日志,它将保存表名称,更新行的ID值或最后插入的ID以及事件的时间戳。

这很有用,因为我们可以检查最新的表是什么,并在发生更改后立即刷新显示给用户的信息,但是我们没有在日志中保存ID的列名。

问题是我们正在用PHP逐案编程。

if($tableName == 'Clients'){ $idname = 'CID'; }
Run Code Online (Sandbox Code Playgroud)

有没有办法问MySQL:给我一个特定表的主键列名称,例如:

SHOW COLUMN_NAME FROM CLEINTS WHERE KEY_NAME = 'PRIMARY KEY';
Run Code Online (Sandbox Code Playgroud)

我记得我过去曾经使用过这样的查询,但是我不记得它是什么,我已经找到了一些SQL解决方案,但似乎无法在MySQL中工作或过于复杂(使用information_schema),该查询我要寻找的非常简单,几乎就像我刚才给出的示例一样。

谢谢

小智 5

您可以从information_schema数据库中获取详细信息。使用以下查询:

SELECT COLUMN_NAME 
FROM information_schema.KEY_COLUMN_USAGE 
WHERE TABLE_NAME = 'Your_table_name' 
  AND CONSTRAINT_NAME = 'PRIMARY'
Run Code Online (Sandbox Code Playgroud)