任何人都可以告诉我查询数据库列中最后插入的值。
问题是在使用ASC
或DESC
之后插入的值可以放在数据库的内部行中,所以我不能使用该方法。如果有人有解决方案,请告诉我。
答案 0 :(得分:12)
您需要使用TIMESTAMP
数据列才能跟踪插入时间。不幸的是,由于固有的竞争条件,在这种情况下使用自动递增主键不起作用。只需将条目时间戳添加为数据列,然后使用ORDER BY time_stamp DESC LIMIT 1
进行检索以获取最后一条记录。如果您感觉真的具有防御性,请在WHERE
条款中包含原始INSERT
来电所特有的条件(即WHERE ID = x AND KEY = y
)
答案 1 :(得分:2)
我是@Daniel Li的第二个评论。
在我创建的每个持久表中,我都有以下列:
(确切的语法因数据库而异。)
除了竞争条件之外,我可以通过“按表格顺序选择*从表格中选择*”找到最后插入的行。
虽然这些占用了额外的空间,但我发现它们不仅可以通过解决问题而获得回报。