테이블에 20 개의 행이 있다고 가정 해 봅시다. 이제 마지막 4 개의 행이 삭제되었습니다. 바로 다음 번에 2 개의 행을 추가 한 다음 기본 키를 삽입했습니다.기본 키를 순차적으로 만드는 방법은 무엇입니까?
1,2,3...16,21,22.
해당 키를 복원 할 수있는 방법이 있나요 될 것 (16)의 바로 다음에 행을 저장할 수있는 방법을 의미하며, 그 결과는 당신이 필요하지 않습니다
1,2,3...16,17,18
테이블에 20 개의 행이 있다고 가정 해 봅시다. 이제 마지막 4 개의 행이 삭제되었습니다. 바로 다음 번에 2 개의 행을 추가 한 다음 기본 키를 삽입했습니다.기본 키를 순차적으로 만드는 방법은 무엇입니까?
1,2,3...16,21,22.
해당 키를 복원 할 수있는 방법이 있나요 될 것 (16)의 바로 다음에 행을 저장할 수있는 방법을 의미하며, 그 결과는 당신이 필요하지 않습니다
1,2,3...16,17,18
될 것입니다. 그냥 날 믿어!
확인 당신이 할 수있는 – user729022
어떤 방법이있을 것이라고 생각, 하지만 왜? – fingerman
+1 나를 보내주십시오. 당신은 결코 그런 행동을 원하거나 그것을 필요로하지 않아야합니다. 기본 키를 만지지 마십시오. Vadim : –
바딤 (Vadim)이 말한 것처럼 정말 할 일이 조금 있습니다. 관련 테이블이있는 경우에도 위험한 게임을해야합니다. 이 질문에 유사
은 사용 않는 데이터베이스 모르겠지만,이 도움이 될 수 SQLite Reset Primary Key Field
왜 일이 필요한 것?
왜 그런지 묻지 않습니까?
테이블이 사용자라고 말하기 때문에 여기에서 키를 다시 정렬하면 이제 게시물의 "posted_by"영역에 다른 사용자가 표시됩니다. 이것은 나쁜 습관입니다.
할 수는 있지만 데이터베이스가 손상됩니다. 이 작업을 수행하려면 수행중인 작업과 데이터베이스의 모든 항목 (관련 테이블, 복제, 백업 등)에 어떻게 영향을 미치는지 정확히 이해해야합니다. 여기에 대한 정보가있는 링크가 있습니다.하지만 재검토를 적극 권장합니다.
http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html
당신은 긴 삽입/업데이트 된 값이 고유성을 위반하지 않는 한 AUTO_INCREMENT 컬럼에 값을 할당 할 수 있습니다. 또한 다른 사람들이 당신이 어떤 관계를 망치지 않았는지 확인해야한다고 충고했습니다. UI에서 어딘가에 PK를 표시하려고하기 때문에이 작업을 수행하는 경우 DisplayID 필드를 갖도록 테이블을 변경하거나 PK로 주문한 후 연속 반복자를 반환하는 쿼리를 작성해야합니다.
이것은 데이터베이스의 무결성을 파괴하는 좋은 방법입니다. 이 도움이 될 것입니다 –
http://stackoverflow.com/questions/740358/mysql-reorder-reset-auto-increment-primary-key/5437720#5437720 – Anshul