카테고리 없음

[mysql] UUID 사용하기

냐옴 2023. 5. 15. 12:31

mysql 에서 uuid 생성하기

-- uuid 생성
select uuid();

-- uuid 를 binary 로 변환
select unhex(REPLACE(uuid(), '-', ''));

-- binary 를 uuid 로 변환
select lower(hex(a.uuid_bin))
FROM (SELECT unhex(REPLACE(uuid(), '-', '')) uuid_bin) a

 

uuid 변환, string <-> binary

SELECT 
    uuidstr AS uuid_ori,
    REPLACE(uuidstr, '-', '') AS uuid_ori_no_dash,
    
    -- uuid 를 binary 로 변환
    unhex(REPLACE(uuidstr, '-', '')) AS uuid_bin,
    
    -- binary 를 uuid 로 변환 (upper case)
    hex(unhex(REPLACE(uuidstr, '-', ''))) AS uuid_bin_to_str_upper,

    -- binary 를 uuid 로 변환 (lower case)
    lower(hex(unhex(REPLACE(uuidstr, '-', '')))) AS uuid_bin_to_str_lower
    
FROM (SELECT uuid() AS uuidstr) a
;

 

 

DB 컬럼 타입 설정

- binary(16)

 

 

uuid 로 조회

SELECT
    lower(hex(tn.notice_uuid)) notice_uuid2, -- a75e6d14ef2047398e6591a9e7a85ff5
    tn.notice_uuid -- §^m ï G9 e ©ç¨_õ
FROM tb_notice tn 
WHERE 1=1
AND tn.notice_uuid = unhex(REPLACE('a75e6d14-ef20-4739-8e65-91a9e7a85ff5', '-', ''))
;