我想无条件地从我的表中删除前500条记录。
表定义如下:
CREATE TABLE txn_log
(
txn_log_timestamp timestamp without time zone NOT NULL,
txn_log_pgm_id character(6)
)
WITH (OIDS=FALSE);
我这里没有任何主钥匙。我试着用来删除
DELETE FROM txn_log LIMIT 500
但它抛出了错误:
错误:“Limit”行1处或其附近的语法错误:从TXN_LOG LIMIT 5000^中删除
- 错误*
错误:位于或接近“Limit”的语法错误
有人能建议我做这件事的方法吗?
3条答案
按热度按时间f4t66c6m1#
尝试使用
LIMIT
准备子查询,如下所示3zwjbxry2#
根据Documentation
ctid
行版本在其表中的物理位置。请注意,尽管ctid可用于非常快速地定位行版本,但每次Vacuum Full更新或移动行的ctid时,行的ctid都会更改。因此,CTID作为长期行标识符是无用的。应该使用OID或用户定义的序列号来标识逻辑行。
fafcakar3#
下面是如何无条件地做到这一点: