PostgreSQL 库如何去除单表重复数据呢?可以通过 ctid 进行,下面是实验过程。
一、创建测试表
| 代码如下 | 复制代码 |
| david=# create table emp ( david(# id int, david(# name varchar); CREATE TABLE david=# |
|
二、插入测试数据
| 代码如下 | 复制代码 |
|
|
|
三、查询初始化数据
| 代码如下 | 复制代码 |
|
david=# |
|
查询重复数据数
| 代码如下 | 复制代码 |
|
david=# |
|
查询出 id 为1的记录有3条,id 为2的记录有2条。
四、查询要保留的数据
以 min(ctid) 或 max(ctid) 为准。
| 代码如下 | 复制代码 |
|
david=# |
|
五、删除重复数据
| 代码如下 | 复制代码 |
|
david=# delete from emp where ctid not in (select min(ctid) from emp group by id); |
|
六、查看最后结果
| 代码如下 | 复制代码 |
|
|
|
david=# 说明:如果表中已经有标明唯一的序列主键值,可以把该值替换上述的ctid直接删除
DeepSeek多模态怎么样及保姆级配置教程(codex、claude)实用指南
WSL2+Docker+Ollama本地部署大模型思路和实践指南(Qwen1.8b)实用指南
DeepSeek Harness热门插件盘点:10个实用插件,覆盖多Agent、上下文和多模态实用指南
grep文本搜索与正则表达式完整代码示例实用指南
AI漫剧伪装直男1‑24集无雾版夸克网盘资源免费分享
AI漫剧玉僧入尘1-68集无雾无删版夸克网盘资源免费分享