当前位置: 首页 > 面试题库 >

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

房新翰
2023-03-14
问题内容

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

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


问题答案:

尝试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)


 类似资料:
  • 问题内容: 我有一个这样的 LoginTime 表: 我想删除的最后一条记录。用户的最后一条记录可以通过识别。 如何使用一个查询执行此操作。 问题答案: 您需要按user_id(例如WHERE user_id = 1)过滤表,然后按时间(例如ORDER BY datetime)对其进行排序,然后将查询限制为一项(例如LIMIT1),然后删除此查询的结果。最后,您将获得如下查询:

  • 本文向大家介绍如何在没有ON条件的情况下使用MySQL JOIN?,包括了如何在没有ON条件的情况下使用MySQL JOIN?的使用技巧和注意事项,需要的朋友参考一下 我们可以不加条件地使用“交叉连接”。交叉联接以笛卡尔积形式给出结果。例如,如果一个表中有3条记录,而另一个表中有2条记录,则第一个记录将与所有第二个表记录匹配。然后,将重复相同的过程以进行第二次记录,依此类推。 交叉连接的例子 创建

  • 我正在建立一个应用程序,并使用MariaDB作为我的数据库。我有一张桌子“kick_votes”。其主键包含三个字段: null

  • 我正在尝试编写一个相当于以下SQL查询的Hibernate Criteria API: 这是我的实体 这是我的实体 是引用的外键。虽然没有明显的实体级关系,我也不能添加任何关系。

  • 问题内容: 我如何确定我的结果集将排在第一和第二?这将帮助我解决棘手的订购问题。 这是我正在做的简化示例: 问题答案:

  • 问题内容: 删除unt_uid为null的活动 这将是最快的方法,但是在该语句完成之前没有人可以访问数据库/表,因此这是不可行的。 我定义了一个游标以在工作时间内完成此任务,但无论如何对生产率的影响很大。那么如何删除这些记录,以保证该数据库的正常使用? 它是32位Win2003上的SQL-2005 Server。第二个问题是:您估计这项工作要完成多长时间(6个小时或60个小时)?(是的,我知道这取