MySQL: ALTER 무시 테이블 고유 추가, 무엇이 잘릴까요?
저는 ID, 유형, 소유자, 설명의 4열로 된 표를 가지고 있습니다.ID는 AUTO_Increment Primary KEY이며, 이제 다음을 수행하고자 합니다.
ALTER IGNORE TABLE `my_table`
ADD UNIQUE (`type`, `owner`);
물론 저는 ='Apple'과 owner ='Apple CO' 유형의 기록이 거의 없습니다.그래서 제 질문은 그 ALTER TABLE 이후에 어떤 특별한 기록을 남길 것인가요, ID가 가장 작은 것과 가장 최근에 삽입된 것 중 어떤 기록을 남길 것인가요?
첫 번째 레코드는 유지되고, 나머지 레코드는 §§ 삭제됩니다.
IGNORE
는 표준 SQL에 대한 MySQL 확장입니다.새 테이블의 고유 키에 중복되는 경우 또는 엄격 모드가 활성화된 경우 경고가 발생하는 경우 ALTER TABLE의 작동 방식을 제어합니다.IGNORE
지정되지 않았습니다. 중복 키 오류가 발생하면 복사가 중단되고 롤백됩니다.IGNORE
를 지정하고, 첫 번째 행만 고유한 키에 중복되는 행으로 사용되며, 다른 충돌하는 행은 삭제됩니다.잘못된 값이 가장 일치하는 허용 가능한 값으로 잘립니다.
여기서 'first'는 ID가 기본 키라고 가정했을 때 ID가 가장 작은 것을 의미하는 것 같습니다.
참고 사항:
MySQL 5.7.4 기준,
IGNORE
을 위한 조항ALTER TABLE
를 제거하고 사용하면 오류가 발생합니다.
당신의 문제가 ALTER GRANGE가 더 이상 사용되지 않게 된 이유 중 하나인 것 같습니다.
다음은 알터 무시 감가상각에 대한 MySQL 노트에서 가져온 것입니다.
"이 기능은 잘못 정의되어 있으며(첫번째 행은 무엇입니까?), 복제 문제가 발생하며, 고유한 인덱스 생성을 위해 온라인 변경 기능을 사용하지 않도록 설정하고, 외부 키(부모 테이블에서 제거된 행)에 문제가 발생했습니다."
언급URL : https://stackoverflow.com/questions/5456520/mysql-alter-ignore-table-add-unique-what-will-be-truncated
'IT' 카테고리의 다른 글
mariadb docker 컨테이너가 부팅을 시작하지 않도록 교육하는 방법 (0) | 2023.10.10 |
---|---|
express.js 서버의 SSL 인증서를 설정하려면 어떻게 해야 합니까? (0) | 2023.10.10 |
XSD: 강력한 형식의 "단순한" 요소에 속성 추가 (0) | 2023.10.10 |
바니쉬 + nginx SSL + woocmerce - wc-ajax가 작동하지 않음 (0) | 2023.10.10 |
HTTP 요청에서 각도 상대 경로 (0) | 2023.10.10 |