2011-08-03 2 views

답변

2

SQLite 자동 증가 필드가 영구 증가합니다. 삭제 된 값을 대체하지 않습니다. 가능한 최대 값이있는 경우에만 삭제 된 값을 대체합니다. this을 참조하십시오. 달성하고자하는 것은 자동 증가 필드를 사용하여 가능하지 않습니다. 프로그래밍 방식으로 수행해야합니다.

+0

이 필드를 프로그래밍 방식으로 변경할 수 있습니까? – 1Programmer

+0

당신 can.just 삽입 문을 넣으십시오 – Rasel

+0

나는이 마지막 해결책을 생각한다 !!! – 1Programmer

0

기본 항목이 autoincrement 인 경우 값을 모두 기존 항목을 삭제하더라도 동일하지 않습니다. 그것은 마지막 삽입에서 멈춘 곳에서 계속됩니다. 기본 키를 1에서 다시 시작하려면 테이블을 자르거나 & 테이블을 삭제하십시오.

SQLite "truncate"명령이 유효하지 않습니다. "tablename에서 삭제"및 "vacuum tablename"을 사용하여 기본 키 수를 1에서 시작하도록 재설정 할 수 있습니다. 삭제 명령에 "where"절이 없는지 확인하십시오.

+0

"vacuum tablename"을 사용하지만 영향을주지 않습니다 !! "tablename에서 삭제"를 사용하면 내 테이블이 삭제되지 않습니다. – 1Programmer

+0

"tablename에서 삭제"는 테이블의 모든 항목 만 제거합니다. –

+0

나는 이것을 사용했지만 유용하지 않았다! – 1Programmer

1

대신 자동 증가를 사용하면 정수 기본 키를 사용할 수 있습니다. 정상적으로 작동합니다. 행이 하나씩 삭제 되더라도 다음 증분이 올바르게 수행됩니다. 정수 기본 키 필드를 비워두면 행의 최대 값이 취해지고 1이 추가됩니다 (max(value)+1과 같습니다). 그것은 나를 위해 잘 작동합니다.

관련 문제