【发布时间】:2012-07-13 16:27:55
【问题描述】:
谁能告诉我数据库列中最后插入值的查询。
问题是使用ASC或DESC后插入的值可以放在数据库的内部行中,所以我不能使用该方法。如果有人有解决方案,请告诉我。
【问题讨论】:
标签: java sql sql-server database
谁能告诉我数据库列中最后插入值的查询。
问题是使用ASC或DESC后插入的值可以放在数据库的内部行中,所以我不能使用该方法。如果有人有解决方案,请告诉我。
【问题讨论】:
标签: java sql sql-server database
您需要使用TIMESTAMP 数据列来跟踪插入时间。不幸的是,由于固有的竞争条件,在这种情况下使用自动递增的主键将不起作用。只需将条目时间戳添加为数据列并使用ORDER BY time_stamp DESC LIMIT 1 检索以获取最后一条记录。如果你感觉非常防御,目标是在 WHERE 子句中包含原始 INSERT 调用所独有的条件(即 WHERE ID = x AND KEY = y)
【讨论】:
我第二次@Daniel Li 的 cmets。
在我创建的每个持久表中,我都有以下列:
(具体语法因数据库而异。)
除了竞争条件,我可以通过“select * from table order by 1 desc”找到最后插入的行。
虽然这些会占用额外的空间,但我发现它们能够随着时间的推移解决问题,从而获得更多回报。
【讨论】: