繁体   English   中英

如何检索数据库中最后插入的值?

[英]How do I retrieve the last inserted value in my database?

任何人都可以告诉我查询数据库列中最后插入的值。

问题是在使用ASCDESC之后插入的值可以放在数据库的内部行中,所以我不能使用该方法。 如果有人有解决方案,请告诉我。

您需要使用TIMESTAMP数据列以跟踪插入时间。 不幸的是,由于固有的竞争条件,在这种情况下使用自动递增主键不起作用。 只需将条目时间戳添加为数据列,然后使用ORDER BY time_stamp DESC LIMIT 1进行检索以获取最后一条记录。 如果你感觉真的是防御性的,那么就要在WHERE子句中包含原始INSERT调用所特有的条件(即, WHERE ID = x AND KEY = y

我是第二个@Daniel Li的评论。

在我创建的每个持久表中,我有以下列:

  • id是第一列和自动递增/标识/串行列
  • CreatedBy默认为用户(SQL Server中的“default system_user”),因此我知道谁更新了该列
  • CreatedAt默认为创建的日期时间(“SQL Server中的默认getdate()”)。

(确切的语法因数据库而异。)

除了竞争条件之外,我可以通过“select * from table order by 1 desc”找到最后插入的行。

虽然这些占用了额外的空间,但我发现它们可以通过随着时间的推移解决问题而获得回报。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM