関数 “gen_random_uuid” が見つかりません

Java

追記:2024年1月13日
この問題はH2 Databaseのバージョン2.2.220以降でサポートされたそうです。
postgresql compatibility: add gen_random_uuid function · Issue #3899 · h2database/h2database · GitHub

H2 Databaseにテーブルを作成する際にgen_random_uuid関数が見つからないとエラーになってしまいました。

DROP TABLE if exists sample CASCADE;
CREATE TABLE sample (
  id uuid DEFAULT gen_random_uuid()
) ;
SQL State  : 90022
Error Code : 90022
Message    : 関数 "gen_random_uuid" が見つかりません
Function "gen_random_uuid" not found; SQL statement:
CREATE TABLE sample (
  id uuid DEFAULT gen_random_uuid()
) [90022-214]

CREATE TABLEよりも先にエイリアスを作成しておくとエラーを回避できます。

DROP ALIAS IF EXISTS gen_random_uuid;
CREATE ALIAS gen_random_uuid AS '
import java.util.UUID;
@CODE
java.util.UUID genRandomUuid() throws Exception {
	return UUID.randomUUID();
}
';

DROP TABLE if exists sample CASCADE;
CREATE TABLE sample (
  id uuid DEFAULT gen_random_uuid()
) ;
https://www.h2database.com/html/commands.html

コメント

タイトルとURLをコピーしました