一尘不染

PostgreSQL如何在没有任何条件的情况下从表中删除前几条记录?

sql

我想无条件删除表中的前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”或附近

有人可以建议我这样做吗?


阅读 210

收藏
2021-05-23

共1个答案

一尘不染

尝试LIMIT如下准备子查询

DELETE FROM txn_log
WHERE txn_log_pgm_id IN (SELECT txn_log_pgm_id
                         FROM txn_log
                         ORDER BY txn_log_timestamp asc
                         LIMIT 500)
2021-05-23