如何在PostgreSQL中没有任何条件的情况下从表中删除前几条记录? [英] How to delete first few records from a table without any criteria in PostgreSQL?

查看:70
本文介绍了如何在PostgreSQL中没有任何条件的情况下从表中删除前几条记录?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想无条件地从我的表中删除前 500 条记录.

I want to delete first 500 records from my table without any condition.

表定义如下:

CREATE TABLE txn_log
(
  txn_log_timestamp timestamp without time zone NOT NULL,
  txn_log_pgm_id character(6)
)
WITH (OIDS=FALSE);

我这里没有任何主键.我试图删除使用

I don't have any primary key here. I tried to delete using

DELETE FROM txn_log LIMIT 500

但它抛出错误:

错误:LIMIT"第 1 行或附近的语法错误:DELETE FROM TXN_LOG限制 5000^

ERROR: syntax error at or near "LIMIT" LINE 1: DELETE FROM TXN_LOG LIMIT 5000 ^

********** 错误**********

********** Error **********

错误:LIMIT"处或附近的语法错误

ERROR: syntax error at or near "LIMIT"

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

Can someone suggest me a way to do this?

推荐答案

尝试使用 LIMIT 准备子查询,如下所示

Try to prepare subquery with LIMIT as below

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)

这篇关于如何在PostgreSQL中没有任何条件的情况下从表中删除前几条记录?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆