2011-05-11 7 views
1

테이블에 20 개의 행이 있다고 가정 해 봅시다. 이제 마지막 4 개의 행이 삭제되었습니다. 바로 다음 번에 2 개의 행을 추가 한 다음 기본 키를 삽입했습니다.기본 키를 순차적으로 만드는 방법은 무엇입니까?

1,2,3...16,21,22. 

해당 키를 복원 할 수있는 방법이 있나요 될 것 (16)의 바로 다음에 행을 저장할 수있는 방법을 의미하며, 그 결과는 당신이 필요하지 않습니다

1,2,3...16,17,18 
+6

이것은 데이터베이스의 무결성을 파괴하는 좋은 방법입니다. 이 도움이 될 것입니다 –

+0

http://stackoverflow.com/questions/740358/mysql-reorder-reset-auto-increment-primary-key/5437720#5437720 – Anshul

답변

3

될 것입니다. 그냥 날 믿어!

+0

확인 당신이 할 수있는 – user729022

+0

어떤 방법이있을 것이라고 생각, 하지만 왜? – fingerman

+0

+1 나를 보내주십시오. 당신은 결코 그런 행동을 원하거나 그것을 필요로하지 않아야합니다. 기본 키를 만지지 마십시오. Vadim : –

1

은 사용 않는 데이터베이스 모르겠지만,이 도움이 될 수 SQLite Reset Primary Key Field

+0

그는 mysql .... – fingerman

+0

을 사용합니다. MySQL에 사용 된 데이터베이스가 MySQL로 태그되었습니다. –

+0

정말 바보 야. – k102

1

왜 일이 필요한 것?

왜 그런지 묻지 않습니까?

테이블이 사용자라고 말하기 때문에 여기에서 키를 다시 정렬하면 이제 게시물의 "posted_by"영역에 다른 사용자가 표시됩니다. 이것은 나쁜 습관입니다.

0

할 수는 있지만 데이터베이스가 손상됩니다. 이 작업을 수행하려면 수행중인 작업과 데이터베이스의 모든 항목 (관련 테이블, 복제, 백업 등)에 어떻게 영향을 미치는지 정확히 이해해야합니다. 여기에 대한 정보가있는 링크가 있습니다.하지만 재검토를 적극 권장합니다.

http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html

0

당신은 긴 삽입/업데이트 된 값이 고유성을 위반하지 않는 한 AUTO_INCREMENT 컬럼에 값을 할당 할 수 있습니다. 또한 다른 사람들이 당신이 어떤 관계를 망치지 않았는지 확인해야한다고 충고했습니다. UI에서 어딘가에 PK를 표시하려고하기 때문에이 작업을 수행하는 경우 DisplayID 필드를 갖도록 테이블을 변경하거나 PK로 주문한 후 연속 반복자를 반환하는 쿼리를 작성해야합니다.

관련 문제