UUID文字列を生成する関数

関数random_uuidは、ランダムに生成されたUUIDを36文字の文字列として返します。この関数を使用すると、INSERT文またはUPDATE SQL文でUUID型の列の値を生成できます。

構文:
string random_uuid()

セマンティクス:

  • この関数は、入力引数を想定していません。
  • 戻り型: string

例:

大学で学生レコードを保持するなどの特定のアプリケーションでは、値を指定するかわりにIDを自動生成できます。IDが主キーおよび名前列である単純な表スキーマについて考えてみます。

CREATE TABLE myTable (id STRING AS UUID, name STRING, PRIMARY KEY (id));

次のデータを表に挿入します。random_uuid関数を使用して、主キー値を生成できます。

INSERT INTO myTable values(random_uuid(),"Adam");
INSERT INTO myTable values(random_uuid(),"Lily");

説明:

random_uuid関数は、INSERT操作中に一意のUUIDを内部的に生成し、それらをIDフィールドに割り当てます。問合せを実行して表から要素を選択します。
select * from myTable order by name;
出力:
{"id":"ff7057c2-cda9-4f6b-b94f-227b259a94d3","name":"Adam"}
{"id":"37166790-4470-4484-bfbb-66364e0ff807","name":"Lily"}

問合せの出力には、学生名に対して割り当てられたUUID値が表示されます。

random_uuid関数は、ランダムで一意の36バイト文字列を生成します。アイデンティティ列が単一のリージョンに対して一意である複数リージョン表について考えてみます。random_uuid関数を使用して、レコードの挿入中にグローバルに一意のアイデンティティを生成できます。

INSERTまたはUPDATE文でRETURNING句を次のように使用して、挿入されたレコードのUUIDを取得できます。
INSERT INTO myTable values(random_uuid(),"Adam") RETURNING *;
出力:
{"id":"9f05eb60-2fa7-4c32-a90a-64371961cb9d","name":"Adam"}

RETURNING句の詳細は、「Upsert文」を参照してください

様々なOracle NoSQL Databaseドライバのクラス・メソッドを使用して、アイデンティティ列の生成された値を取得できます。

たとえば、アプリケーションがJava SDKを使用している場合は、getGeneratedValue()メソッドを使用できます。このメソッドでは、操作によってアイデンティティ列の新しい値が作成された場合に、生成された値が返されます。詳細は、PutResultを参照してください。

アプリケーションでPython SDKを使用している場合は、get_return_row()メソッドを使用できます。これは、行が存在する場合にのみ成功します。詳細は、PutRequestを参照してください。

同様に、各言語のSDKによって、生成された値を取得するためのインタフェースが公開されています。