メインコンテンツへスキップ
MySQL は UUID をテキストとして、または手作業で変換する BINARY(16) として格納します。 vsql_uuid は、16 バイトを保持し、おなじみの 36 文字形式で表示され、独自の比較規則で並べ替えられる本物の uuid カラム型を追加します。また、バージョン 1、3、4、5、6、および 7 を生成します。MySQL 自身の UUID() が生成するのはバージョン 1 だけです。

インストール

インストールスクリプト、Docker イメージ、またはリリース tarball で VillageSQL をインストールした場合、vsql_uuid.veb はすでにサーバーの lib/veb/ ディレクトリにあります。1 つのステートメントでサーバーにインストールします。
インストールされたことを確認します。
自分でビルドするには、リポジトリのビルド手順に従ってください。

追加される機能

uuid 型

カラムを uuid として宣言します。16 バイトを占有し、主キーとして機能します。

関数

例

バージョン 7 の識別子を主キーとして使用すると、後に書き込まれた行が先に書き込まれた行の後に並びます。その後、バージョンを読み戻します。
名前から安定した識別子を導出します。
上記の順序が保たれるのは、ミリ秒をまたぐ場合だけです。バージョン 7 は先頭にミリ秒のタイムスタンプを置き、残りをカウンターなしでランダムに埋めるため、同じミリ秒内に生成された 2 つの値は、互いにランダムな順序で並びます。そのため、この例では 2 つの行を別々のステートメントで挿入しています。それより細かい順序が必要な場合は UUID_V6() を使用してください。
uuid カラムは文字列リテラルを受け付けますが、文字列式は受け付けません。したがって、INSERT INTO orders VALUES ('550e8400-e29b-41d4-a716-446655440000', ...) は動作しますが、INSERT INTO orders VALUES (UUID(), ...) は ERROR 3219 (HY000): Incorrect uuid value: cannot implicitly cast string expression. Use explicit conversion for column 'id' at row 1 で失敗します。代わりに、上記のいずれかの関数で値を生成してください。

関連項目