相关疑难解决方法(0)

如何在PostgreSQL中通过排序删除固定数量的行?

我正在尝试将一些旧的MySQL查询移植到PostgreSQL,但我遇到了这个问题:

DELETE FROM logtable ORDER BY timestamp LIMIT 10;
Run Code Online (Sandbox Code Playgroud)

PostgreSQL不允许对其删除语法进行排序或限制,并且该表没有主键,因此我无法使用子查询.此外,我想保留在查询删除的行为究竟该规定数量的记录-例如,如果表中包含30行,但它们都具有相同的时间戳,我还是想删除10,虽然它并不重要哪10.

所以; 如何在PostgreSQL中通过排序删除固定数量的行?

编辑:没有主键意味着没有log_id列或类似.啊,遗留系统的乐趣!

sql postgresql

94
推荐指数
4
解决办法
7万
查看次数

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

我想从我的表中删除前500条记录,没有任何条件.

表定义如下:

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

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

DELETE FROM txn_log LIMIT 500
Run Code Online (Sandbox Code Playgroud)

但它抛出错误:

错误:语法错误位于或接近"LIMIT"第1行:从TXN_LOG LIMIT删除5000 ^

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

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

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

sql postgresql

6
推荐指数
2
解决办法
7254
查看次数

标签 统计

postgresql ×2

sql ×2