UUID列を含む表への行の挿入

キーワードDEFAULTがUUID列のinsert_clauseとして使用されると、UUID列の値が生成されます。

GENERATED BY DEFAULTと、CREATE TABLE文でDEFAULT CLAUSEが指定されていない場合の、両方のスタイルのUUID列のINSERT文を示すいくつかの例を次に示します。INSERT文のキーワードDEFAULTは、UUID列がGENERATED BY DEFAULTとして宣言されている場合にのみ適用されます。

例: GENERATED BY DEFAULT句のないUUID列を含む表への行の挿入

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

INSERT INTO myTable values("a81bc81b-dead-4e5d-abff-90865d1e13b1","test1");
Statement completed successfully

前述の例では、表myTableのid列にGENERATED BY DEFAULTが定義されていません。したがって、新しい行を挿入するたびに、id列の値を明示的に指定する必要があります。

例: random_uuid関数を使用したUUID列を含む表への行の挿入

UUID列の値は、random_uuid関数を使用して生成することもできます。UUID文字列を生成する関数を参照してください。

sql-> INSERT INTO myTable values(random_uuid(),"test2");
{"NumRowsInserted":1}
1 row returned
Statement completed successfully

sql-> select * from myTable;
{"id":"d576ab3b-8a36-4dff-b50c-9d9d4ca6072c","name":"test2"}
{"id":"a81bc81b-dead-4e5d-abff-90865d1e13b1","name":"test1"}
2 rows returned
Statement completed successfully

この例では、random_uuid関数を使用してランダムに生成されたUUIDがフェッチされます。この値がINSERT文で使用されます。

例: GENERATED BY DEFAULT句のあるUUID列を含む表への行の挿入

CREATE TABLE myTable (id STRING AS UUID GENERATED BY DEFAULT,name STRING, PRIMARY KEY (id));
Statement completed successfully

INSERT INTO myTable VALUES(default,"test1") returning id;
{"id":"e7fbab63-7730-4ec9-be73-a62e33ea73c3"}
Statement completed successfully

前述の例では、myTableのid列にGENERATED BY DEFAULTが定義されています。キーワードDEFAULTがUUID列のinsert_clauseで使用されると、UUID列の値が生成されます。システムにより生成されるUUID値は、returning句を使用してフェッチされます。