我是postgresql的新手,我在我的表中插入了5000行,但我只想从5000行中删除1500行。在这里,我没有任何约束来删除这些行。我必须从表中删除顶部或底部的1500行。
我已经google了很多但我没有任何线索删除没有任何约束的行。
任何建议都会很棒。
答案 0 :(得分:2)
DELETE FROM YourTable
WHERE ctid IN (
SELECT ctid
FROM YourTable
ORDER BY timestamp
LIMIT 1500
)
ctid是: 行版本在其表中的物理位置。请注意,尽管可以使用ctid非常快速地定位行版本,但如果行的ctid被VACUUM FULL更新或移动,则行的ctid将会改变。因此,ctid作为长期行标识符是无用的。应该使用OID,甚至更好的用户定义的序列号来识别逻辑行。