从Postgresql表中删除一定数量的行

从Postgresql表中删除一定数量的行,postgresql,Postgresql,我是postgresql新手,我在表中插入了5000行,但我只想从5000行中删除1500行。在这里,我没有任何删除这些行的约束。我必须从表中删除顶部或底部的1500行 我在谷歌上搜索了很多,但我没有得到任何线索来删除没有任何约束的行 任何建议都很好 DELETE FROM YourTable WHERE ctid IN ( SELECT ctid FROM YourTable ORDER BY timestamp LIMIT 1500 ) ctid是: 行版本在其表中的物理位置。请注意,尽管

我是postgresql新手,我在表中插入了5000行,但我只想从5000行中删除1500行。在这里,我没有任何删除这些行的约束。我必须从表中删除顶部或底部的1500行

我在谷歌上搜索了很多,但我没有得到任何线索来删除没有任何约束的行

任何建议都很好

DELETE FROM YourTable
WHERE ctid IN (
SELECT ctid
FROM YourTable
ORDER BY timestamp
LIMIT 1500
)
ctid是:
行版本在其表中的物理位置。请注意,尽管ctid可用于快速定位行版本,但如果行的ctid被更新或移动,则该行的ctid将发生更改。因此,ctid作为长期行标识符是无用的。OID,或者更好的是用户定义的序列号,应该用于标识逻辑行。

Postgres数据库中没有内部顺序。您应该删除1500条关于某个列顺序的记录。关系数据库中不存在底部1500行的情况。请注意,SELECT ctid FROM中的ctid。。。极限n非常慢。以下运行速度更快:ctid=ANYARRAYSELECT ctid FROM。。。极限n