메인 콘텐츠로 건너뛰기
MySQL은 UUID를 텍스트로 저장하거나, 직접 변환해야 하는 BINARY(16)으로 저장합니다. vsql_uuid는 16바이트를 저장하고, 익숙한 36자 형식으로 출력하며, 자체 비교 규칙으로 정렬되는 진짜 uuid 열 유형을 추가합니다. 또한 버전 1, 3, 4, 5, 6, 7을 생성합니다. MySQL 자체의 UUID()는 버전 1만 생성합니다.

설치

설치 스크립트, Docker 이미지 또는 릴리스 tarball로 VillageSQL을 설치했다면 vsql_uuid.veb는 이미 서버의 lib/veb/ 디렉터리에 있습니다. 문 하나로 서버에 설치하세요:
설치되었는지 확인합니다:
직접 빌드하려면 저장소의 빌드 지침을 따르세요.

추가되는 기능

uuid 유형

열을 uuid로 선언합니다. 16바이트를 차지하며 기본 키로 사용할 수 있습니다.

함수

예제

버전 7 식별자를 기본 키로 사용하면 나중에 쓴 행이 먼저 쓴 행 뒤에 정렬됩니다. 그런 다음 버전을 다시 읽어 봅니다:
이름에서 고정된 식별자를 만듭니다:
위의 정렬 순서는 밀리초 단위를 넘어서는 경우에만 보장됩니다. 버전 7은 앞부분에 밀리초 타임스탬프를 두고 나머지는 카운터 없이 무작위로 채우므로, 같은 밀리초에 생성된 두 값은 서로 무작위 순서로 정렬됩니다. 그래서 예제에서 두 행을 별도의 문으로 삽입합니다. 더 세밀한 순서가 필요하면 UUID_V6()를 사용하세요.
uuid 열은 문자열 리터럴은 받지만 문자열 표현식은 받지 않습니다. 따라서 INSERT INTO orders VALUES ('550e8400-e29b-41d4-a716-446655440000', ...)는 동작하지만, INSERT INTO orders VALUES (UUID(), ...)는 ERROR 3219 (HY000): Incorrect uuid value: cannot implicitly cast string expression. Use explicit conversion for column 'id' at row 1 오류로 실패합니다. 대신 위의 함수 중 하나로 값을 생성하세요.

참고 항목