我们的系统会为每个更新或插入新内容的表创建一个日志,它会保存表名,更新行的ID值或插入的最后一个ID以及事件的时间戳.
这很有用,因为我们可以检查更新的最新表是什么,并在发生更改时立即刷新显示给用户的信息,但我们没有在日志中保存ID的列名.
问题是我们在PHP中逐案编程.
if($tableName == 'Clients'){ $idname = 'CID'; }
有没有办法只问MysqL:给我一个特定的表的主键列名称,如:
SHOW COLUMN_NAME FROM CLEINTS WHERE KEY_NAME = 'PRIMARY KEY';
我记得我过去曾经使用过像这样的查询,但是我记不清它是什么了,我找到了一些sql的解决方案,但似乎没有在MysqL中工作或太复杂(使用information_schema),我正在寻找的查询非常简单,几乎就像我刚给出的例子.
谢谢
解决方法:
您可以从information_schema数据库中获取详细信息.使用以下查询:
SELECT COLUMN_NAME
FROM information_schema.KEY_COLUMN_USAGE
WHERE TABLE_NAME = 'Your_table_name'
AND CONSTRAINT_NAME = 'PRIMARY'