Postgresql 按创建时间查询行?

Postgresql 按创建时间查询行?,postgresql,datetime,Postgresql,Datetime,我有一个不包含日期或时间相关字段的表。我仍然希望根据创建记录/行的时间查询该表。在PostgreSQL中有这样做的方法吗 我更喜欢一个直接在PostgreSQL中实现的答案。但是如果这不可能,hibernate可以为PostgreSQL做吗?基本上:不。PostgreSQL中没有行的自动时间戳 我通常会在表中添加这样的列(忽略时区): 只要不操纵该列中的值,就可以获得创建时间戳。您可以添加触发器和/或限制写入权限,以避免使用值进行调整 二等选择 如果您有一个串行列,您至少可以以一定的概率判断输

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


我更喜欢一个直接在PostgreSQL中实现的答案。但是如果这不可能,hibernate可以为PostgreSQL做吗?

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

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

只要不操纵该列中的值,就可以获得创建时间戳。您可以添加触发器和/或限制写入权限,以避免使用值进行调整

二等选择
  • 如果您有一个串行列,您至少可以以一定的概率判断输入的行的顺序。这并不是100%可靠,因为值可以手动更改,应用程序可以从序列中获取值,然后按顺序插入

  • 如果您创建了表,那么OID列可能是某种指示——除非您的数据库写得很重和/或很旧,否则您可能已经经历了OID环绕,以后的行可以有一个较小的OID。这就是为什么这个功能几乎不再被使用的原因之一

    默认值取决于手册的设置:

该参数默认为off;在PostgreSQL 8.0及更早版本中,它是 默认情况下启用

  • 如果您没有更新行或经历转储/恢复周期,或运行
    真空满
    群集
    或,普通的
    SELECT*FROM-tbl
    按输入的顺序返回所有行。但这是非常不可靠的,并且依赖于实现。PostgreSQL(与任何RDBMS一样)不保证没有order BY子句的任何订单
ALTER TABLE tbl ADD COLUMN log_in timestamp DEFAULT localtimestamp NOT NULL;