【发布时间】:2019-02-16 16:25:25
【问题描述】:
我们的系统会为每个更新或插入新内容的表创建一个日志,它会保存表名、更新行的 ID 值或最后插入的 id 以及事件的时间戳。
这很有用,因为我们可以检查最新更新的表是什么,并在发生更改后立即刷新向用户显示的信息,但我们没有在日志中保存 ID 的列名。
问题是我们在 php 中是逐个编程的。
if($tableName == 'Clients'){ $idname = 'CID'; }
有没有办法只问MySQL:给我一个特定表的主键列名,比如:
SHOW COLUMN_NAME FROM CLEINTS WHERE KEY_NAME = 'PRIMARY KEY';
我记得我过去曾使用过这样的查询,但我不记得它是什么,我找到了一些 SQL 解决方案,但似乎在 MySQL 中不起作用或者太复杂(使用 @ 987654324@),我要找的查询很简单,和我刚才给出的例子差不多。
谢谢
【问题讨论】:
-
关闭:
SHOW INDEX FROM CLIENTS WHERE KEY_NAME = 'PRIMARY'; -
不错,SHOW INDEX FROM... 很好,快到了!这会返回所有索引,包括 key_Name 'primary' 和列名,但它返回的信息太多,我只想要主键名。谢谢!
-
试试这个:
SHOW KEYS FROM CLEINTS WHERE Key_name = 'PRIMARY' -
@Nick,如果您可以将其添加为回复,我可能会将其视为一个很好的答案,它非常接近且绝对有用