어떤 이유로 인해 카테고리 ID를 PK하지 않고 "카테고리"테이블을 만든 시스템에서 작업하고 있습니다. 이제 테이블에 모든 행이 중복되어 일부 쿼리에 문제가 있음을 알았습니다.PK없는 테이블에서 삭제 된 행의 개수 제한
내 질문은 : 색인에 의존하지 않고 테이블에 '원본'을 남겨두고 중복 행을 삭제하는 방법이 있습니까?
다음은 SELECT * FROM categories
의 : 테이블에 정의 된 인덱스가
+-----------+-------------+
| 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 TABLE xyz AS SELECT DISTINCT FROM categories;
DROP TABLE categories;
ALTER TABLE xyz RENAME categories;
CREATE UNIQUE INDEX idx_nn_c_1 ON categories(id);
이
입니다. 임시 테이블 (CREATE TEMPORARY TABLE temp_categories)을 만들어야한다는 점을 추가하고 싶습니다. 권한이 부족하기 때문에 모든 것이 작동합니다. 감사! – Sebastianb