gpt4 book ai didi

mysql - 限制表中无 PK 删除的行数

转载 作者:行者123 更新时间:2023-11-29 07:15:38 24 4
gpt4 key购买 nike

我正在开发一个系统,由于某种原因,有人创建了一个“类别”表,但没有对类别的 ID 进行 PK。我刚刚发现现在该表具有所有行的重复项,并且导致我的一些查询出现问题。

我的问题是:有没有一种方法可以删除重复的行,将“原始行”保留在表中,而不依赖于索引?

这是从类别中选择*:

+-----------+-------------+
| categoria | descripcion |
+-----------+-------------+
| 1 | Int.Cons. |
| 2 | Delegado |
| 3 | Personal |
| 4 | Comun |
| 5 | Proveedor |
| 6 | Menor/Inc |
| 11 | N/Categoria |
| 1 | Int.Cons. |
| 2 | Delegado |
| 3 | Personal |
| 4 | Comun |
| 5 | Proveedor |
| 6 | Menor/Inc |
| 11 | N/Categoria |
+-----------+-------------+

表上没有定义索引。

最佳答案

您可以通过多种方式删除记录。我可能会建议使用临时表,然后正确地重新填充表:

create temporary table temp_categories as 
select c.id, c.descripcion
from categories c
group by c.id;

truncate table categories;

insert into categories(id, descripcion)
select id, descripcion
from temp_categories;


alter table add constraint primary key (id);
alter table add constraint unq_categories_descripcion unique (descripcion);

关于mysql - 限制表中无 PK 删除的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38060563/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com