Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
没有id或日期的PostgreSQL最新记录_Postgresql - Fatal编程技术网

没有id或日期的PostgreSQL最新记录

没有id或日期的PostgreSQL最新记录,postgresql,Postgresql,我有一张外国桌子,没有id也没有日期。 例如,如果其他用户插入了大量记录,是否可以在PostgreSQL中选择最后插入的记录? *注意:根据我的知识,我对该表的唯一访问权限是select only,PostgreSQL不保证保留插入顺序。如果没有时间戳字段或顺序主键,我认为不可能保证获取最后一行 你可以试试这个 SELECT * FROM YOUR_TABLE WHERE CTID = (SELECT MAX(CTID) FROM YOUR_TABLE) 假设目标表不执行更新操作。SQL表表示

我有一张外国桌子,没有id也没有日期。 例如,如果其他用户插入了大量记录,是否可以在PostgreSQL中选择最后插入的记录?
*注意:根据我的知识,我对该表的唯一访问权限是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。这和这张桌子是外国人有关吗?谢谢你提供的信息。如果是这样的话,也许我会放弃这个想法,考虑其他的解决方案