没有id或日期的PostgreSQL最新记录
我有一张外国桌子,没有id也没有日期。 例如,如果其他用户插入了大量记录,是否可以在PostgreSQL中选择最后插入的记录?没有id或日期的PostgreSQL最新记录,postgresql,Postgresql,我有一张外国桌子,没有id也没有日期。 例如,如果其他用户插入了大量记录,是否可以在PostgreSQL中选择最后插入的记录? *注意:根据我的知识,我对该表的唯一访问权限是select only,PostgreSQL不保证保留插入顺序。如果没有时间戳字段或顺序主键,我认为不可能保证获取最后一行 你可以试试这个 SELECT * FROM YOUR_TABLE WHERE CTID = (SELECT MAX(CTID) FROM YOUR_TABLE) 假设目标表不执行更新操作。SQL表表示
*注意:根据我的知识,我对该表的唯一访问权限是select only,PostgreSQL不保证保留插入顺序。如果没有时间戳字段或顺序主键,我认为不可能保证获取最后一行 你可以试试这个
SELECT * FROM YOUR_TABLE WHERE CTID = (SELECT MAX(CTID) FROM YOUR_TABLE)
假设目标表不执行更新操作。SQL表表示无序集和结果集。如果未指定订购者,则无法保证数据 以及: 我有一张外国桌子,没有id也没有日期 如果没有这个来指定您需要什么,就没有其他解决方法 我对该表的唯一访问权限是select only
如果您只获得just Select权限,您应该告诉您的DBA,如果该数据是从该用户插入的最后一个数据,您就不能为该数据提供100%的保证。我强烈建议您建议他们创建一个或两个时间戳列,一个用于插入的时间,另一个用于更新的时间或自动增量列。MAXCTID不表示最新的行。CTID不表示最新的,而是表示物理位置方面的最后一条记录。这就是我添加“提供”条款的原因,不是吗?谢谢你提供的信息。还尝试了ctid方法,尽管它返回的是不能从该查询点引用ctid。这和这张桌子是外国人有关吗?谢谢你提供的信息。如果是这样的话,也许我会放弃这个想法,考虑其他的解决方案