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 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によって、生成された値を取得するためのインタフェースが公開されています。