2009-11-03 5 views
4

여기에 좋은 연습이 있습니까?AUTO_INCREMENT가 한계에 도달하면 어떻게 처리 할 수 ​​있습니까?

기본 키가 한도에 도달했을 때 문제를 해결하고 이 아닌 경우이 아닌 경우 문제를 해결할 수 있기를 바랍니다. 이것이 나의 특정한 문제에서 일어날 일이기 때문입니다.

어쩔 수없는 경우 ... 어떻게해야합니까?

이것은 mysql 질문입니다, Sybase sql 아무데도 같은 문제가 있습니까?

답변

1

당신은 기본 키에 대한 올바른 유형을 선택해야하지만 당신은 당신이 일반적으로 사용되는 INT 대신 BIGINT 사용할 수있는 행을 많이해야합니다 알고있는 경우

는 당신에게 절대 안전한 대답을 할 수 없습니다.

mysql에서 alter table 문을 사용하여 기본 키 열을 쉽게 조정하여 범위를 조정할 수 있습니다.
자동 증가 기본 키는 항상 양수이므로 해당 collumn에 부호없는 등록 정보도 사용해야합니다. 한계 당신은 아마 당신이 그 분야에 대한 제한을 공격 할 이유는 INSERT

0

음, 자동 증가 열의 데이터 유형에 따라 다릅니다. 이 데이터 유형의 최대 접근의 경우 LAST_INSERT_ID()

, 하나 삽입을 허용하지 않거나 그것을 처리 :
Unsign INT 당신이 오류를 방지하려면 4294967295

에, 당신은 값 마지막 자동 증가 값을 확인할 수까지 간다 다른 방법으로.

그 외의 경우 bigint를 사용하는 것이 좋습니다. 대부분의 시나리오에서 max를 치지 못할 수 있습니다. :)

3

ON DUPLICATE KEY UPDATE 문 안쪽에 넣어 몇 가지 알고리즘을 만들 수에 도달

? 충분히 큰 데이터 유형으로 정의한 경우 모든 레코드를 보유 할 수 있어야합니다.

부호없는 bigint를 사용한 경우 최대 18,446,744,073,709,551,615 개의 레코드를 가질 수 있습니다!

관련 문제