メインコンテンツまでスキップ
に最終更新

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 |
+--------------------------------------+--------------------------------------+