2016-09-21 2 views
0

MariaDB에서 데이터베이스를 실행하고 있습니다. 기본 키에 자동 번호 매기기를 사용합니다. 로컬 개발 시스템에서는 모든 것이 예상대로 작동합니다.가상 머신의 MariaDB 자동 번호

동일한 데이터베이스와 시스템이 클라이언트 시스템에 설치되어 있습니다.이 경우 클라이언트는 Windows Server를 실행하는 가상 시스템에서 설치를 실행하도록 선택했습니다.

이 시스템은 지난 몇 일 동안 이상한 문제가 발생하여 몇 주 동안 발견되었습니다. 오늘은 기존 레코드를 편집하려고 시도했으나 레코드 대신 기본 키가 0 인 새 레코드가 업데이트되었습니다. 데이터베이스에 추가되므로 자동 증가가 안정적으로 작동하지 않습니다.

어떻게 이런 일이 발생할 수 있습니까? 무엇이 그것을 일으킬 수 있습니까?

데이터베이스를 검사하고 복구합니다.

답변

0

동일한 데이터베이스가 두 개의 서로 다른 시스템, 동일한 버전의 mariadb에 있지만 Windows 버전이 약간 다릅니다. 한 시스템의 저장 프로시 저는 null 대신 0을 보냈습니다. 한 시스템에서 0은 null로 취급되고 새 레코드가 작성되었으며 다른 시스템에서는 0이 데이터베이스 ID로 해석되어 이로 인해 문제가 발생했습니다.

내가 지금 널 (null)을 확인은 ID가 성공 할 수있는 방법 없습니다 ...> 0

1

삽입 할 때 자동 증가 만 실행되며 해당 속성에 대한 값은 제공되지 않습니다. 따라서 수동으로 업데이트 할 수 있습니다. 나는 자동 증가가 실패하지 않았다고 말한다.

+0

그것은 기록이 0의 기본 키를 갖는 것을 실패한 경우 보내입니까? – SPlatten

+0

아마도 "사용자 오류"일 것입니다. 삽입을 한 문장을 보자. 나는 그것이 "0"을 auto-inc 컬럼에 명시 적으로 저장하고 있다고 생각한다. –

관련 문제