宣言
BIN_TO_UUID(binary_uuid), BIN_TO_UUID(binary_uuid,swap_flag)
説明
BIN_TO_UUID()は、バイナリ形式のUUIDを文字列形式のUUIDに変換し、その結果を返します。バイナリ値binary_uuidは、VARBINARY(16)データ型のUUIDである必要があります。戻り値はUUIDバージョン1に準拠しており、128ビットの数字で、ダッシュ(-)で区切られた5つの16進数からなるutf8mb3文字列です。形式はUUID()関数と同じで、aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeeeeの形式です。各部分の説明は以下の通りです:
- 最初の3文字は、タイムスタンプの低、中、高の各部分から生成されます。最後の部分にはUUIDバージョン番号も含まれます。
- 4番目の文字は、タイムスタンプ値が一意でなくなること(例:夏時間の影響)を防ぎ、時間の一意性を保証します。
- 5番目の文字は、空間的一意性を提供するIEEE 802ノード番号です。利用できない場合はランダムな数値が代用されますが、空間的一意性は保証されません。
UUIDパラメータがNULLの場合、戻り値はNULLとなります。いずれかのパラメータが無効な場合、エラーが発生します。
BIN_TO_UUID()の構文には、単一パラメータ形式と二重パラメータ形式の2種類があります。詳細は以下の通りです:
- 単一パラメータ形式では、バイナリ形式のUUID値を指定します。UUID値は、時間の低い部分と高い部分が入れ替わっていないものと仮定されます。返される文字列結果は、バイナリパラメータの順序と同じになります。
- 二重パラメータ形式では、バイナリ形式のUUID値と
swap-flag値を指定します:swap_flagが0の場合、二重パラメータ形式は単一パラメータ形式と同じになります。文字列結果は、バイナリパラメータの順序と同じになります。swap_flagが1の場合、UUID値の時間の低い部分と高い部分が入れ替わっているものと仮定されます。これらの部分は、結果値内の元の位置に戻されます。
BIN_TO_UUID()はUUID_TO_BIN()の逆関数です。使用例や時間部分の入れ替えルールの詳細については、UUID_TO_BIN()を参照してください。