如何在 DELETE 语句中使用行的物理位置 (ROWID)

2023-11-26

我有一个表,其中有很多重复的行并且没有主键。
我只想删除重复的记录,但是当我尝试这样做时,它会删除所有对等记录。

我怎样才能找到ROWID来自 Postgres 中的表?


在 PostgreSQL 上,行的物理位置称为 CTID。

因此,如果您想查看它,请使用如下查询:

SELECT CTID FROM table_name

要在 DELETE 语句上使用它来删除重复的记录,请像这样使用它:

DELETE FROM table_name WHERE CTID NOT IN (
  SELECT RECID FROM 
    (SELECT MIN(CTID) AS RECID, other_columns 
      FROM table_name GROUP BY other_columns) 
  a);

请记住,table_name 是所需的表,other_columns 是您要用于过滤该表的列。

Ie:

DELETE FROM user_department WHERE CTID NOT IN (
  SELECT RECID FROM 
    (SELECT MIN(CTID) AS RECID, ud.user_id, ud.department_id
      FROM user_department ud GROUP BY ud.user_id, ud.department_id) 
  a);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 DELETE 语句中使用行的物理位置 (ROWID) 的相关文章

  • 日期语句之间的 JPQL SELECT [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我想将此 SQL 语句转换为等效的 JPQL SELECT FROM events WHERE events date BETWE
  • 使用加权行概率从 PostgreSQL 表中选择随机行

    输入示例 SELECT FROM test id percent 1 50 2 35 3 15 3 rows 你会如何编写这样的查询 平均 50 的时间我可以获得 id 1 的行 35 的时间 id 2 的行 15 的时间 id 3 的行
  • 我是否需要在外键上指定 ON DELETE NO ACTION?

    我有以下与 SQL Server 2012 一起使用的 DDL CREATE TABLE Subject SubjectId INT IDENTITY 1 1 NOT NULL Name NVARCHAR 50 Not NULL CONST
  • 如何将 PostgreSql 与 EntityFramework 6.0.2 集成? [复制]

    这个问题在这里已经有答案了 我收到以下错误 实体框架提供程序类型的 实例 成员 Npgsql NpgsqlServices Npgsql 版本 2 0 14 2 文化 中性 PublicKeyToken 5d8b90d52f46fda7 没
  • 在 C# 中读取/写入大型 XML 文件

    我正在开发一个带有 XML 数据库的应用程序 我有很大的 XML 文件 我必须在其中读取和写入数据 问题是我不想将整个 XML 文件加载到内存中 也不想因为性能问题而循环遍历整个文件 因为如果我将整个文件加载到内存中 这将影响应用程序性能
  • SQL WHERE 取决于星期几

    我需要检查不同日期的记录 具体取决于当前是一周中的哪一天 在周五 我需要它查看整个下周 直到下周日 在其他任何一天 它都应该检查当前周 直到下周日 我目前有以下内容 但由于语法错误而无法工作 是否可以做一个CASE WHEN里面一个WHER
  • 获取两行之间不同的列

    我有一张桌子company有 60 列 目标是创建一个工具来查找 比较和消除该表中的重复项 示例 我发现 2 家公司可能相同 但我需要知道这两行之间哪些值 列 不同才能继续 我认为可以逐列比较 x 60 但我寻找更简单 更通用的解决方案 就
  • 当您在 SQL Server 中创建新登录名时,它默认选择 db_owner

    我在 SQL Server 2008 R2 中创建新的 SQL 用户时遇到一些问题 当我使用 SQL Server Management Studio 时 它会检查db owner默认情况下的角色成员资格 我只想创建一个具有只读访问权限的新
  • 删除连接中不存在的记录

    想象两个表 A 和 B A B 1 2 2 3 6 5 4 7 9 11 13 23 9 现在我想从 A 中删除 B 中不存在的记录 例如从 A 中删除 1 6 和 4 我最初的想法是您可以 否定 联接的结果 DELETE FROM A W
  • Big Query - 将数组/json 对象转置为列

    这个问题是这两个问题的延续 Bigquery 将数组转置为列 https stackoverflow com q 64346504 7463780 大查询 将特定字段转置为列 https stackoverflow com q 643983
  • 如何获取日期时间字段的 UTC?

    我正在使用 MySQL 5 并且正在尝试将日期时间字段转换为 UTC TIMESTAMP 这是我所拥有的 但它不起作用 并且不确定我是否可以做到这一点 但有人可以告诉我我做错了什么吗 谢谢 我已经尝试过这个 SELECT UTC TIMES
  • 如何从表中选择所有偶数 id?

    我想从 MySQL 数据库的表中选择所有甚至帖子 ID 然后显示它们 我还想获取所有带有奇怪 id 的帖子并将它们显示在其他地方 我想使用 PHP 来完成此操作 因为这是我使用的服务器端语言 或者 我是否必须选择所有帖子 然后使用 Java
  • 在 MySQL 中将值设置为 NULL

    我想要一个值被设置为NULL如果我提交的表单中的文本框中没有输入任何内容 我怎样才能做到这一点 我试过插入 NULL 但这只是添加了这个词NULL进入现场 我不确定我应该为此提供什么代码 我只是编写一个 UPDATE 查询 不要放NULL更
  • JPA 为每个项目选择最新实例

    假设我有一个会议实体 每次会议都有一个与会者和一个会议日期 在我的会议表中 我可能为每个与会者举行多个会议 每个会议都有不同的日期 我需要一个 JPA 查询 该查询将为所有与会者仅选择最新的会议 例如 如果我的桌子看起来像这样 Meetin
  • 同一表中同一列的 SQL 完全外连接

    这可能更多的是一个设计问题 但我希望这在没有太多巫术的情况下是可能的 假设我有一个这样的表 SELECT FROM stuff id grp 1 a 2 a 3 a 1 b 2 b 4 b 我想要得到这样的东西 ID 按列分组 a id b
  • 如何在 sql 2005 或 2008 中使列区分大小写

    是否可以根据列更改默认排序规则 我想让 1 列区分大小写 但其他所有列都不区分大小写 ALTER TABLE ALTER COLUMN允许更改单个列的排序规则 alter table Foo alter column Bar ntext c
  • 如何创建从表中最大值开始的 Oracle 序列?

    尝试在 Oracle 中创建一个以特定表中的最大值开始的序列 为什么这不起作用 CREATE SEQUENCE transaction sequence MINVALUE 0 START WITH SELECT MAX trans seq
  • 从 SQL 语句中检索元数据(表名)

    我使用的是 Visual Studio 2008 我创建了一个 Winforms 应用程序 并且尝试从 SQL 语句中提取表名 con new SqlConnection connString String queryString Sele
  • PostgreSQL 位图堆扫描索引非常慢,但仅索引扫描很快

    我创建了一个包含 43kk 行的表 并用值 1 200 填充它们 因此 表中每个数字大约为 220k create table foo id integer primary key val bigint insert into foo se
  • C 中的等效 plpgsql 触发器

    我有一个 PostgreSQL 9 0 服务器 并且在某些表上使用继承 因此我必须通过如下触发器模拟外键 CREATE OR REPLACE FUNCTION othertable before update trigger RETURNS

随机推荐

  • 在 tvOS 模拟器上卸载应用程序

    如何从 tvOS 模拟器卸载应用程序 我已经尝试长按该图标 但没有出现 关闭按钮 我知道 这是一个 Beta 版本 也许将来他们会实现类似 iOS 的功能 谢谢 Method 1 从主屏幕 Settings gt General gt Ma
  • 有条件地向 ui-select 添加“multiple”属性

    我正在尝试添加multiple归因于ui select指令基于某个属性的值 使用ng attr 指示 不幸的是 这对我不起作用 我设置了一个 plunker 示例来展示正在发生的事情 笨蛋的例子 Edit 读完上述内容后我终于明白了GitH
  • 我们可以在 Firebase Cloud Messaging 中创建多少个主题?

    我正在构建一个使用 Firebase Cloud Messaging 的应用程序 但我有一些疑问 我想知道我们可以在一个应用程序实例中制作多少个主题 In 官方文档它写道 当单个应用实例订阅过多主题时 它检索错误TOO MANY 主题 我想
  • 如何在我的 PHP/SQL/HTML/CSS 代码上实现 MVC 风格? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我一直在开发一个程序来可视化一些数据 我的程序从 MySQL 数据库获取特定输入并绘制一些图表 libchart 库 创建一些表格等 我的问题是 现在那里是一个代码地狱 我有大约
  • 在加特林场景之间共享数据

    我有一个场景 在包含用户名和密码的 CSV 文件的帮助下 获取会话 ID 并使用 saveAs 保存它们 我希望能够在以下场景中使用这些会话 ID 该场景执行一些需要会话 ID 的操作 此外 我还想将会话 ID 与其用户名相关联 所以本质上
  • WAMP 和 pcntl_fork

    有没有办法让 pcntl fork 在 WAMP 中工作 我需要开发一个分叉解决方案并在本地进行测试 不 这是不可能的 这PCNTL扩展需要 nix 平台 现在 话虽如此 你想做什么 你能在不分叉的情况下解决它吗 Edit 启动后台进程的一
  • angularjs $http.get 获取json在服务层不起作用

    我正在开发一个 AngularJS 应用程序 作为我的 AngularJS 学习的一部分 我有控制器 从那里我调用服务层 leagueManager service teamsService function http var teams
  • Python sys.stdout.flush() 不起作用

    下面的代码应该打印从 1 到 10 中间间隔 1 秒 但是它在实际打印任何内容之前等待 10 秒 然后一次性打印所有内容 如何取消缓冲输出 import sys import time for count in range 10 sys s
  • IE8 不会下载启用了 UAC 的自定义 mime/类型的文件

    我在本地计算机 Windows 7 x64 IE8 net 3 5 C 上运行一个 net 服务 该服务将文件返回到浏览器以响应用户操作 使用 firefox 或 chrome 可以正确下载文件 并且我们的应用程序通过自定义 mime 类型
  • Python上下文管理的成员变量?

    上下文管理器定义设置 清理功能 enter and exit 惊人的 我想保留一个作为成员变量 当我的类对象超出范围时 我希望执行此清理操作 据我所知 这基本上是 C 构造函数 析构函数自动发生的行为 class Animal object
  • Laravel 全局中间件无法获取会话

    protected middleware App Http Middleware Syspoint class use Session class Syspoint echo Session get syspoint 我有一个中间件需要在每
  • 如何在 PHP 中生成随机 64 位值作为十进制字符串

    Oauth 需要一个随机 64 位无符号数字 编码为十进制格式的 ASCII 字符串 你们能帮我用 php 实现这个吗 谢谢 这是一个非常有趣的问题 如何在 PHP 中创建任意长度随机数的十进制表示 不使用可选扩展 这是解决方案 步骤一 任
  • 使用 PHP 创建电子邮件帐户

    我正在尝试使用 PHP 创建电子邮件 这是我的代码 到目前为止它是非常基本的 直到我能得到一个工作脚本 这是我得到的最接近的 但它说它已经添加了电子邮件 尽管在 cpanel 中该电子邮件不存在 所以它显然不存在 请注意 出于安全原因 此代
  • 何时使用以及如何编写循环半代码[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我们什么时候使用循环半 另外 是否应该有人简要说明如何编写其代码 您可以使用循环半来避免
  • 每次我想使用数据库时是否都需要打开 MongoDB 连接?

    在我正在使用的示例中是以下代码 lets require import the mongodb native drivers var mongodb require mongodb We need to work with MongoCli
  • Laravel 中的“批量分配”是什么意思?

    当我浏览 Laravel Document 关于 Eloquent ORM 主题部分时 我得到了一个新术语 批量分配 文档显示如何进行批量分配以及 fillable or guarded属性设置 但经历了这些之后 我对 批量分配 以及它是如
  • 正则表达式 - 匹配句子中每个单词中除第一个字母以外的所有字母

    我几乎在这里得到了答案 但我遗漏了一些东西 我希望这里有人可以帮助我 我需要一个正则表达式来匹配句子中每个单词中除第一个字母之外的所有字母 然后我需要用正确数量的星号替换匹配的字母 例如 如果我有以下句子 There is an enorm
  • 通过 eclipseLink 生成 sql 时出现问题 - 缺少分隔符

    我正在将 eclipseLink 与 jpa 一起使用 在我的 persistence xml 中 我定义生成一个 create sql 文件 将生成该文件 但每个 sql 语句缺少 分隔符 是否可以在 persistence xml 中或
  • 从 Google Cloud Composer 运行 docker 运算符

    至于文档 Google Cloud Composer 气流工作节点由专用的 kubernetes 集群提供服务 我有一个包含 ETL 步骤的 Docker 我想使用气流运行它 最好在托管 Workers 的同一个 Kubernetes 上或
  • 如何在 DELETE 语句中使用行的物理位置 (ROWID)

    我有一个表 其中有很多重复的行并且没有主键 我只想删除重复的记录 但是当我尝试这样做时 它会删除所有对等记录 我怎样才能找到ROWID来自 Postgres 中的表 在 PostgreSQL 上 行的物理位置称为 CTID 因此 如果您想查