[SQL] 정지 MySQL의 재사용 AUTO_INCREMENT ID를
SQL정지 MySQL의 재사용 AUTO_INCREMENT ID를
나는 AUTO_INCREMENT 기본 키가있는 테이블이있다. 테이블의 마지막 행이 삭제 된 경우, 다음 - 삽입 된 행은 동일한 ID를 취할 것입니다.
t-SQL처럼 행동하고, ID를 다시 사용하지 MySQL의를 가져 오는 방법이 있나요? 삭제 된 행이 잘못 데이터베이스 외부에 뭔가에서 참조되는 그런 경우, 행이 오류를 강조, 반환되지 않습니다.
해결법
-
==============================
1.이 경우, 당신은 아마 공개적으로 액세스 할 수있는 장소에서 AUTO_INCREMENT 인덱스를 사용해서는 안됩니다.
이 경우, 당신은 아마 공개적으로 액세스 할 수있는 장소에서 AUTO_INCREMENT 인덱스를 사용해서는 안됩니다.
어느 다른 데이터에서 키 필드를 유도하거나 아이디의를 생성하기 위해 다른 메커니즘을 사용합니다. 당신이 (잠재적으로 심각한) 성능에 영향을 알고 있어야하지만 내가 전에 사용했던 방법 중 하나는,이 마지막으로 사용 된 키 및 증가를 추적 할 수있는 "키"테이블입니다.
그런 식으로, 당신은 당신이 원하는 키도 숫자가 아닌 모든 유형을 사용하고, 자신의 알고리즘을 사용하여 증가 할 수 있습니다.
나는 과거에 6 자 숫자 키를 사용하고 있습니다 :
CREATE TABLE `TableKeys` ( `table_name` VARCHAR(8) NOT NULL, `last_key` VARCHAR(6) NOT NULL, PRIMARY KEY (`table_name`) ); SELECT * FROM `TableKeys`; table_name | last_key -----------+--------- users | U00003A2 articles | A000166D products | P000009G
-
==============================
2.MySQL 버전 8로, MySQL은 더 이상 오랜 (2003 년 오픈!) 버그 # 199를 수정, AUTO_INCREMENT ID 값을 재 - 사용하지 않습니다.
MySQL 버전 8로, MySQL은 더 이상 오랜 (2003 년 오픈!) 버그 # 199를 수정, AUTO_INCREMENT ID 값을 재 - 사용하지 않습니다.
더 많은 정보를 위해, MySQL의 커뮤니티 관리자에 의해이 블로그 게시물 lefred 참조 : https://lefred.be/content/bye-bye-bug-199/
-
==============================
3.즉 레코드가 삽입 된 다음 삭제됩니다 우리의 MySQL 데이터베이스 작업은 다음 번호가 아니라 삭제 된 일이있는 방법이 아니다.
즉 레코드가 삽입 된 다음 삭제됩니다 우리의 MySQL 데이터베이스 작업은 다음 번호가 아니라 삭제 된 일이있는 방법이 아니다.
-
==============================
4.내가 알고있는 것처럼,이 일을 방법이 없습니다. 삭제 된 플래그를 추가하고 삭제 플래그를 설정하는 대신 행을 제거하여 주위에 작업하는 것이 좋습니다.
내가 알고있는 것처럼,이 일을 방법이 없습니다. 삭제 된 플래그를 추가하고 삭제 플래그를 설정하는 대신 행을 제거하여 주위에 작업하는 것이 좋습니다.
"올바른"대답은 행이 삭제되면, 당신이 그것을 참조하지 않아야한다는 것입니다. 당신은 DB를 다른 곳 dB에서 참조 삭제할 행을 허용하지 않습니다 있는지 확인 외래 키를 추가 할 수 있습니다.
-
==============================
5.MySQL의 매뉴얼은 말합니다 :
MySQL의 매뉴얼은 말합니다 :
이 엔진 가능한 이러한 동작은,의 MyISAM이 아닌 다른이 보인다
from https://stackoverflow.com/questions/3718229/stop-mysql-reusing-auto-increment-ids by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 모호한 열 이름 오류 (0) | 2020.07.16 |
---|---|
[SQL] 그것은 tableless이 여러 행으로 선택이 가능합니까? (0) | 2020.07.16 |
[SQL] 데이터베이스 오류 : 행 위치에 없습니다 0 (0) | 2020.07.16 |
[SQL] 는 SQL 애저의 정체성 씨앗을 다시 설정하는 방법 (0) | 2020.07.16 |
[SQL] STRING_AGG에서 고유 값을 생성합니다 (0) | 2020.07.16 |