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
句を使用してフェッチされます。