자동 증가는 InnoDB와 MyISAM 테이블 모두에서 다음 사용 가능한 ID를 사용합니다.
Windows Vista에서 실행되는 MySQL 4.1.22에 대해이를 테스트했습니다. InnoDB를 사용하는 간단한 테이블과 MyISAM을 사용하는 간단한 테이블 두 개를 만들었습니다. 각각에는 'id'라는 자동 증가 기본 키와 'description'이라는 varchar 열이 있습니다.
INSERT INTO MyIsamTest (description) VALUES ('autoincrement id insert');
INSERT INTO MyIsamTest (id, description) VALUES (100, 'manual id insert');
INSERT INTO MyIsamTest (description) VALUES ('autoincrement id insert');
SELECT * FROM MyIsamTest;
나는 'ID'열이 제대로 autoincremented 것을 보여줍니다 다음과 같은 결과를 얻었다 : 나는를
+=====+=========================+
| id | description |
+=====+=========================+
| 1 | autoincrement id insert |
+-----+-------------------------+
| 100 | manual id insert |
+-----+-------------------------+
| 101 | autoincrement id insert |
+-----+-------------------------+
반복
나는 (오류없이) 다음 명령을 실행 동일한 결과로 InnoDbTest 테이블을 실험 해보십시오.
우리는 트랜잭션이있는 innoDB 테이블에서 어떤 일이 벌어지고있다.이 테이블은 위쪽으로 자동 증가하지만 최대 ID보다 아래에있다. 나는이 간단한 테스트가 너무 단순하다고 생각한다. 나는 mysql이 자동으로 기존의 ID를 건너 뛸 것이라고 확신하지만, 100 %가 아니다. –
예, 우리는 innoDb 자동 증가 값이 max (id)보다 낮 으면 어떤 일이 일어나지 않을지를 알려준다. –
테스트의 문제점은 정상적인 삽입 문과 함께 삽입됩니다. 내가 dev에 서버에 프로덕션 데이터베이스를 정기적으로 복원 한 dev에 서버의 자동 증가가 업데이 트되지 않습니다 따라서 생산에서 가져온 기존의 레코드와 충돌 따라서 내가 굉장히 많은 문제가 생겼어요 dev에 새 항목이 있습니다. –