首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按创建时间查询行?

问按创建时间查询行?
EN

Stack Overflow用户
提问于 2012-07-27 17:53:12
回答 1查看 5.8K关注 0票数 9

我有一个不包含日期或时间相关字段的表。不过,我仍然希望根据创建记录/行的时间来查询该表。在PostgreSQL中有办法做到这一点吗?

我更喜欢在PostgreSQL中直接使用它的答案。但是如果这是不可能的,hibernate能为PostgreSQL做这件事吗?

EN

回答 1

Stack Overflow用户

发布于 2012-07-28 05:28:15

基本上:no。PostgreSQL中的行没有自动时间戳。

我通常在表中添加这样的列(忽略时区):

代码语言:javascript
复制
ALTER TABLE tbl ADD COLUMN log_in timestamp DEFAULT localtimestamp NOT NULL;

只要您不操作该列中的值,就会得到创建时间戳。您可以添加触发器和/或限制写入权限,以避免使用这些值进行回火。

二级选择

  • 如果您有一个串行列,您至少可以以某种概率判断输入了什么顺序的行。这不是100%可靠的,因为可以手动更改值,并且应用程序可以从序列和INSERT顺序中获得值。
  • 如果您创建了您的表WITH (OIDS=TRUE),那么OID列可能是一些指示--除非您的数据库是大量写入和/或非常旧的,那么您可能已经完成了OID包装--以后的行可以有一个较小的OID。这就是为什么这个特性不再被使用的原因之一。 默认情况取决于default_with_oids的设置--我引用手册:

默认情况下,参数为off;在PostgreSQL 8.0和更早版本中,默认情况下是打开的。

  • 如果您没有更新您的行或经历了转储/恢复周期,或者运行VACUUM FULL或CLUSTER或。,普通SELECT * FROM tbl按输入的顺序返回所有行。但这是非常不可靠的,并依赖于实现。PostgreSQL (与任何关系数据库管理系统一样)不保证没有ORDER BY子句的任何订单。
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11693084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档