MySQL에서 생성 한 UUID()
이 고유하지 않은 경우 어떻게됩니까? 이것이 기본 키인 열의 경우, MySQL은 오류가 발생합니까? 아니면 정말 고유 한 것이 발견 될 때까지 다른 UUID를 생성합니까?고유하지 않은 경우의 MySQL UUID()?
답변
글쎄, UUID()
을 두 번 호출하고 동일한 결과를 얻는다면, 가장 문제가되는 것은 "물건이 고장났다"(tm) 것입니다. 그것은 유일해야하고 그것은 항상 알고 있어야합니다.
"재생성"코드가 없습니다.이 기능은 컴퓨터 전체에서 고유 한 키를 생성하도록 설계되었으므로 결과가 고유하지 않은 것을 어떻게 알 수 있습니까? http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html#function_uuid
에서
는 UUID는 공간과 시간에 전 세계적으로 고유 한 숫자로 설계되어 있습니다. UUID()에 대한 두 번 호출은 서로 연결되지 않은 두 개의 개별 컴퓨터 에서 수행되는 경우에도 서로 다른 두 개의 값을 생성 할 것으로 예상됩니다.
어쩌면 다른 것을 의미할까요? 예를 들어, UUID()
을 사용하여 기본 키 또는 고유 필드 등 고유해야하는 항목을 생성하고 이전에 동일한 번호를 추가 한 경우 (예 : UUID()
을 한 번 호출했지만 두 번 삽입 한 경우) 고유하지 않은 콘텐츠를 고유 한 장소에 추가 할 때 얻을 수있는 기본 오류 만 가져옵니다. 너는 새로운 것을 얻지 못할 것이다.
고유성에 대한 몇 가지 독서 자료 :
설명서. 그것을 읽고, 그것은
uuid
생성하는 다양한 부품을 사용하는 방법은 다음과 같습니다. http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html#function_uuid실제 정의에 대한 그 매뉴얼에 대한 링크를 확인합니다 (하지만이 하나 건너 뛸 수 있도록 즉, 매우 읽기의) : https://www2.opengroup.org/ogsys/jsp/publications/PublicationDetails.jsp?catalogno=c706
을 쉽게
일부는 여기 dubplicates의 확률 통계를 이해하기 : http://en.wikipedia.org/wiki/Universally_unique_identifier
는 기본 키로서 사용에 대한 너무 MySQL의 사이트 (포럼 등)에 대한 몇 가지 이야기가있다,하지만 난 직장에서 짧은에있어로 시간, 당신은 그 자신을 위해 검색해야합니다 :)
MySQL UUID()는 MAC 주소, 버전 및 타임 스탬프를 기준으로 결정됩니다. 단일 서버에서 2 개의 스레드가 동일한 시간 소인 (정확히 동일한 마이크로 초)을 호출하는 경우, 동일한 결과가 예상됩니다. 호출은 4Ghz 프로세서에서 수 마이크로 초 단위로 분리되므로 단일 스레드에서는이 작업을 수행 할 수 없습니다.
중복 된 기본 키 오류가 발생합니다. – dusc2don
흠.하지만 UUID의 고유 한 보장보다는 "충돌 가능성이 거의 없음"이 아닙니까? 나는 그 부분에 대해 확신하지 못했습니다 - UUID()가 고유 ID를 생성하지 않을 가능성이 있습니까? – ina
변경은 까다로운 단어이지만, 기본 키로 사용하는 것은 전례가 아닙니다. 나는 약간의 독서 자료를 게시 할 것이다. 그러나 당신은 아주 쉽게 쉽게 찾을 수있다. – Nanne
UUID를 기본 키로 사용 하시겠습니까? – ina