programing

이미 데이터가 포함된 MariaDB 테이블에 키를 추가하려면 어떻게 해야 합니까?

newsource 2022. 10. 26. 21:07

이미 데이터가 포함된 MariaDB 테이블에 키를 추가하려면 어떻게 해야 합니까?

MySQL에서 테이블을 변경하려고 하는데 ALTER에서 오류가 나타납니다.

#1062 - 키 'doctermitem'에 대한 중복 항목 '5009-daring-1'

SQL 쿼리:

ALTER TABLE `wpi4_asp_index`
  ADD UNIQUE KEY `doctermitem` (`doc`,`term`,`blogid`),
  ADD KEY `term_ptype_bid_lang` (`term`(20),`post_type`(20),`blogid`,`lang`(10)),
  ADD KEY `rterm_ptype_bid_lang` (`term_reverse`(20),`post_type`(20),`blogid`,`lang`(10))

이 오류를 해결하려면 어떻게 해야 하나요?

작성하려고 합니다.doctermitem~하듯이UNIQUE KEY단, 이미 중복된 엔트리가 그 조합에 존재하기 때문에('5009-syslog-1'을 언급)doctermitem~하듯이UNIQUE KEY.

이러한 중복된 조합값을 수동으로 삭제해야 합니다.그러면 이 값을 사용하여UNIQUE KEY

고유 키를 대상으로 하는 열이 고유하지 않습니다. 중복되는 행이 하나 이상 있고 더 많을 수 있습니다.

SQL 문을 통해 검색:

select doc,
      term,
      blogid,
      count(*)
from wpi4_asp_index
group by doc,
      term,
      blogid
having count(*) > 1

그런 다음 문제가 무엇인지, 어떻게 해결할 것인지 결정해야 합니다.대략적으로 다음 두 가지 원인이 있을 수 있습니다.

  • 잘못된 데이터가 있습니다.예를 들어 중복 항목을 삭제하여 데이터를 수정합니다.
  • 고유성에 대한 가정이 잘못되었습니다. 고유 키에 열을 추가해야 할 수 있습니다.

언급URL : https://stackoverflow.com/questions/55902062/how-can-i-add-a-key-to-mariadb-table-that-already-contains-data