我们的系统会为每个更新或插入新内容的表创建一个日志,它会保存表名,更新行的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'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。