我有一个不包含日期或时间相关字段的表。不过,我仍然希望根据创建记录/行的时间来查询该表。在PostgreSQL中有办法做到这一点吗?
我更喜欢在PostgreSQL中直接使用它的答案。但是如果这是不可能的,hibernate能为PostgreSQL做这件事吗?
发布于 2012-07-28 05:28:15
基本上:no。PostgreSQL中的行没有自动时间戳。
我通常在表中添加这样的列(忽略时区):
ALTER TABLE tbl ADD COLUMN log_in timestamp DEFAULT localtimestamp NOT NULL;只要您不操作该列中的值,就会得到创建时间戳。您可以添加触发器和/或限制写入权限,以避免使用这些值进行回火。
二级选择
INSERT顺序中获得值。WITH (OIDS=TRUE),那么OID列可能是一些指示--除非您的数据库是大量写入和/或非常旧的,那么您可能已经完成了OID包装--以后的行可以有一个较小的OID。这就是为什么这个特性不再被使用的原因之一。
默认情况取决于default_with_oids的设置--我引用手册:默认情况下,参数为off;在PostgreSQL 8.0和更早版本中,默认情况下是打开的。
VACUUM FULL或CLUSTER或。,普通SELECT * FROM tbl按输入的顺序返回所有行。但这是非常不可靠的,并依赖于实现。PostgreSQL (与任何关系数据库管理系统一样)不保证没有ORDER BY子句的任何订单。https://stackoverflow.com/questions/11693084
复制相似问题