자동 증가 필드의 공백 채우기
질문: 자동 증가 필드의 공백을 원활하게 채울 수 있는 방법이 있습니까? 새 삽입으로 필드를 증가시키겠습니까?
답변:
순서나 의미적 의미를 위해 자동 증가 필드에 의존하는 것은 일반적으로 바람직하지 않지만 채울 때 상황이 있습니다. 이러한 격차가 바람직할 수 있습니다. 이러한 경우 MySQL 기능을 활용하여 새로운 순차 ID 세트를 생성할 수 있습니다.
CREATE TEMPORARY TABLE NewID(NewID INT UNSIGNED AUTO INCREMENT, OldID INT UNSIGNED)를 사용하여 임시 테이블을 생성하고 기존 ID를 모두 삽입합니다. 오름차순:
INSERT INTO NewIDs (OldID) SELECT Id FROM OldTable ORDER BY Id ASC
이렇게 하면 기존 ID와 새 ID 간의 매핑이 생성됩니다.
다른 테이블의 참조를 업데이트하려면 외래 키 제약 조건을 비활성화하세요.
SET foreign_key_checks = 0;
그런 다음 상위 및 하위 테이블을 업데이트합니다.
UPDATE Parent, Child, NewIds SET Parent.ParentId = NewIds.Id, Child.ParentId = NewIds.Id WHERE Parent.ParentId = NewIds.ParentId AND Child.ParentId = NewIds.ParentId
마지막으로 외래 키 확인을 다시 활성화합니다.
SET foreign_key_checks = 1;
정리를 위해 임시 테이블을 삭제합니다.
DROP TABLE NewIds
자동 증가 필드를 수정하면 참조 무결성과 성능에 영향을 미칠 수 있으므로 이 프로세스를 주의해서 사용해야 한다는 점에 유의하는 것이 중요합니다.
위 내용은 MySQL의 자동 증가 필드에서 공백을 채울 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!