P粉3916779212023-08-23 15:36:57
열을 auto_increment로 변환하려고 할 때 행 중 하나의 값이 0인 경우에도 이 문제가 발생했습니다. 대안은 다음을 설정하는 것입니다:
으아악세션을 설정하려면.
이렇게 하면 열이 ID가 0인 auto_increment로 변경됩니다.
0은 이상적이지 않으며 auto_increment 열에 사용하지 않는 것이 좋습니다. 안타깝게도 상속된 데이터세트의 일부이므로 지금은 변경할 수 없습니다.
나중에 설정(및 기타 설정)을 지우는 것이 가장 좋습니다.
으아악단, 현재 클라이언트 세션이 종료되면 삭제됩니다.
'NO_AUTO_VALUE_ON_ZERO' 설정에 대한 자세한 내용은 여기를 참조하세요.
P粉1460805562023-08-23 00:06:11
이는 테이블에 ID가 0(또는 음수)인 기존 레코드가 포함된 경우 발생합니다. 양수 값을 사용하도록 기존 레코드를 모두 업데이트하면 해당 열에 auto_increment를 설정할 수 있습니다.
편집: 어떤 사람들은 0이 어떻게 나타나는지 물었습니다. 명확히 하기 위해 MySQL 참조 매뉴얼에는 "숫자 유형의 경우 기본값은 0이지만 AUTO_INCREMENT 속성이 있는 정수 또는 부동 소수점 유형의 경우 기본값은 시퀀스의 다음 값입니다."라고 나와 있습니다. auto_increment를 활성화하기 전의 값 숫자 열에 값을 제공하지 않고 테이블에 삽입을 수행하는 경우 삽입 중에 기본값인 0이 사용됩니다. 자세한 내용은 https://dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html에서 확인할 수 있습니다.