내가 테이블이 있다고 가정 contacts
id Name Contact_No
-----------------------------------------
1 abc 12345
2 lmn 56784
3 pqr 83654
4 uvw 17637
5 xyz 98345
내가하면 3 행을 삭제 데이터베이스에서, 무엇이 될 id
삭제 된 행 다음 행을?
그리고 행 4를 업데이트하면 데이터베이스를 업데이트 한 후에도 새 행 이 주어 id
지거나 행 4의 ID가 동일하게 유지됩니까?
autoincrement
과 의 차이점은 무엇입니까 autoincrement not null
? 공식 문서에 따르면 성능이 저하되고 데이터베이스가 느리게 작동합니다. 함께 작성하는 것이 필수 integer primary key
입니까?
많은 스택 오버플로 답변을 읽었고 SQLite 공식 문서 도 읽었 지만 얻을 수 없었습니다.
열 id
이름 이라고 가정 합니다 INTEGER PRIMARY KEY
.
행을 업데이트하면 여전히 동일한 행이므로 ID가 변경되지 않습니다. (그게 전체 업데이트 지점입니다).
새 ID 생성과 관련하여 모든 것이 링크 된 문서에 있습니다.
관련 섹션 :
INSERT에서 ROWID 또는 INTEGER PRIMARY KEY 열에 명시 적으로 값이 지정되지 않은 경우 일반적으로 현재 사용중인 가장 큰 ROWID보다 많은 사용되지 않는 정수로 자동으로 채워집니다.
엄격한 규칙은 없으며 구현에 따라 달라질 수 있습니다. 일반적으로 select max(id)+1
. 경우 6이지만 5 행을 삭제하면 ID 5를 재사용 할 수 있습니다. (그러나 이것에 의존하지 마십시오).
열에 INTEGER PRIMARY KEY AUTOINCREMENT (...) 유형이있는 경우 새 행에 대해 선택된 ROWID는 이전에 동일한 테이블에 존재했던 가장 큰 ROWID보다 하나 이상 큽니다. 테이블에 데이터가 포함 된 적이없는 경우 ROWID 1이 사용됩니다.
따라서 추가 NOT NULL
하는 AUTOINCREMENT
것은 무의미합니다.
귀하의 경우, 그 전에 삭제 한 행 수에 관계없이 다음 ID는 6입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다