은 테이블의 전체 데이터를 삭제하고 ID가 우리가 새로운 행을 삽입하려고 할 때 명령은 테이블에서 데이터를 제거하는 데 도움이 삭제 1삽입 새 행 1
에서 시작하여 새 행을 삽입 할 수있는 가능성이 있음 사전에 감사 ID가 마지막으로 삽입 된 행의 ID가 + 1 (마지막으로 삽입 된 ID가있는 경우 5 다음 새 ID가 6이어야 함) 될 것입니다하지만 난 1
로 명령을 잘라 이외의 제안을 그 ID를 저장할
은 테이블의 전체 데이터를 삭제하고 ID가 우리가 새로운 행을 삽입하려고 할 때 명령은 테이블에서 데이터를 제거하는 데 도움이 삭제 1삽입 새 행 1
에서 시작하여 새 행을 삽입 할 수있는 가능성이 있음 사전에 감사 ID가 마지막으로 삽입 된 행의 ID가 + 1 (마지막으로 삽입 된 ID가있는 경우 5 다음 새 ID가 6이어야 함) 될 것입니다하지만 난 1
로 명령을 잘라 이외의 제안을 그 ID를 저장할
모든 레코드를 삭제 한 후 수행
ALTER TABLE tablename AUTO_INCREMENT = 1
MySQL의 문서에서
주
는 : Link
당신은 이미 사용되었는지 어떤보다 작거나 같은 값으로 카운터를 재설정 할 수 없습니다. MyISAM의 경우, 값이 보다 작거나 같으면 현재 AUTO_INCREMENT 열에있는 최대 값으로 값이 현재 최대 값에 1을 더한 값으로 재설정됩니다. InnoDB의 경우, 값이 열의 현재의 최대치보다 작은 이면, 에러는 발생하지 않고 현재의 순서 값은 변경되지 않습니다.
당신은 모든 행을 삭제하고 자동 증가 값을 재설정 할 TRUNCATE
명령을 사용하는 경우 :
TRUNCATE tablename;
사용이 TRUNCATE 표는 자동 증가 값으로 재설정 TABLENAME :
당신의 뜻을 sequence
에서 두 개의 명령을 실행해야합니다.
먼저 표의 모든 데이터를 삭제하십시오.
delete TABLE_NAME
그런 다음 "ID"ID 열 것을, 1
insert into TABLE_NAME(ID) values(1)
나는 당신의 설명에서 가정에 ID를 설정? 이 경우
,TRUNCATE TABLE tablename;
모든 행을 삭제하고 다시 1 채울 신원 필드를 재설정 모두. @mhasan 답변으로
ALTER TABLE `tablename` AUTO_INCREMENT = 1
왜 downvote입니까? 내 대답은 완전히 정확합니다. –
나는 downvote하지 않았지만, OP가 TRUNCATE 이외의 솔루션을 명시 적으로 요구했기 때문에 downvote가있을 수 있습니다. 그럼에도 불구하고 TRUNCATE가 더 나은 솔루션입니다. –
이 작업을 수행하는 방법입니다.
또 다른 방법은 id 열을 삭제하고 다시 작성하는 것입니다.
ALTER TABLE `tablename` DROP `id`;
ALTER TABLE `tablename` AUTO_INCREMENT = 1;
ALTER TABLE `tablename` ADD `id` int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;
그러나 테이블이 다른 테이블과 관계가 있다면 좋은 해결책이 아닙니다.
'TRUNCATE'의 문제점을 공유 할 수 있습니까? – peterm