최종 수정: 에
TO_UUID_OR_DEFAULT
설명
문자열을 UUID로 변환합니다. 텍스트가 유효하지 않거나 입력이 NULL이면 대체 UUID를 반환하고, 대체 UUID를 지정하지 않으면 모든 비트가 영인 UUID를 반환합니다.
별칭
toUUIDOrDefault.
사용 시 참고 사항
입력 문자열에 대한 실패 처리는 enable_strict_cast와 무관합니다. 선택적 대체 값 표현식 자체에서 오류가 발생하면 쿼리가 실패할 수 있습니다.
구문
TO_UUID_OR_DEFAULT(<string>, <default>)
TO_UUID_OR_DEFAULT(<string>)
매개변수
| 매개변수 | 설명 |
|---|---|
<string> | CHAR, VARCHAR 또는 STRING 값입니다. 하이픈이 포함된 36자 표준 형식의 텍스트 또는 32자리 십육진수를 허용하며, 대소문자를 구분하지 않습니다. 중괄호, 앞뒤 공백 및 표준 형식과 다른 위치의 하이픈은 허용되지 않습니다. |
<default> | UUID 타입의 선택적 대체 값으로, 행별 표현식이나 NULL을 사용할 수 있습니다. 생략하면 모든 비트가 영인 UUID가 기본값으로 사용됩니다. 문자열 대체 값은 명시적으로 UUID로 캐스팅해야 합니다. |
반환 값
UUID 타입을 반환합니다. 입력이 유효하면 대체 값이 NULL이어도 항상 파싱된 UUID를 반환합니다. 입력이 유효하지 않거나 NULL이고, 명시적으로 지정한 대체 값이 NULL인 경우에만 NULL을 반환합니다.
예제
SELECT TO_UUID_OR_DEFAULT('550E8400E29B41D4A716446655440000') AS parsed,
TO_UUID_OR_DEFAULT('bad') AS invalid,
TO_UUID_OR_DEFAULT(NULL) AS null_input;
+--------------------------------------+--------------------------------------+--------------------------------------+
| parsed | invalid | null_input |
+--------------------------------------+--------------------------------------+--------------------------------------+
| 550e8400-e29b-41d4-a716-446655440000 | 00000000-0000-0000-0000-000000000000 | 00000000-0000-0000-0000-000000000000 |
+--------------------------------------+--------------------------------------+--------------------------------------+
SELECT TO_UUID_OR_DEFAULT('bad', CAST('550e8400-e29b-41d4-a716-446655440000' AS UUID)) AS fallback,
TO_UUID_OR_DEFAULT(NULL, CAST('550e8400-e29b-41d4-a716-446655440000' AS UUID)) AS null_input,
TO_UUID_OR_DEFAULT('bad', CAST(NULL AS UUID)) AS null_fallback;
+--------------------------------------+--------------------------------------+---------------+
| fallback | null_input | null_fallback |
+--------------------------------------+--------------------------------------+---------------+
| 550e8400-e29b-41d4-a716-446655440000 | 550e8400-e29b-41d4-a716-446655440000 | NULL |
+--------------------------------------+--------------------------------------+---------------+
SELECT TO_UUID_OR_DEFAULT('{550e8400-e29b-41d4-a716-446655440000}') AS braces,
TO_UUID_OR_DEFAULT(' 550e8400-e29b-41d4-a716-446655440000') AS leading_space;
+--------------------------------------+--------------------------------------+
| braces | leading_space |
+--------------------------------------+--------------------------------------+
| 00000000-0000-0000-0000-000000000000 | 00000000-0000-0000-0000-000000000000 |
+--------------------------------------+--------------------------------------+