UUID列が含まれている表への行の挿入
UUID列のinsert_clauseとしてキーワードDEFAULT
を使用すると、システムによってUUID列の値が生成されます。
ここでは、UUID列の両方の種類(CREATE TABLE文でGENERATED BY DEFAULTを指定したものと、DEFAULT CLAUSEの指定がないもの)について、いくつかの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が定義されています。UUID列のinsert_clauseにキーワードDEFAULT
を使用すると、システムによってUUID列の値が生成されます。システム生成のUUID値は、returning
句を使用してフェッチします。