宣言
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()を参照してください。