如何在h2数据库中插入特定的UUID?

Wim*_*uwe 6 mysql uuid h2

我需要在数据库中插入一些默认数据。我正在使用 Spring Boot 与 Flyway 集成。为了进行测试,我使用 H2。对于生产,将使用 MySQL。

我制作了单独的 Flyway 迁移脚本,因此我可以使用数据库特定的内容作为默认数据(创建表是在通用脚本中完成的)。

对于 MySQL,我有这样的东西:

INSERT INTO survey_definition (id, name, period) 
VALUES (0x2D1EBC5B7D2741979CF0E84451C5BBB1, 'disease-activity', 'P1M');
Run Code Online (Sandbox Code Playgroud)

我怎样才能对 H2 做同样的事情?

我只找到了该RANDOM_UUID()函数,它可以工作,但我需要使用已知的 UUID,因为我在进一步的语句中将其用作外键。

Tho*_*ler 3

最好使用适用于所有数据库的语法。我认为大多数数据库不支持该0x语法。对于 H2,这可行:

INSERT INTO survey_definition (id, name, period) 
VALUES ('2D1EBC5B7D2741979CF0E84451C5BBB1', 'disease-activity', 'P1M');
Run Code Online (Sandbox Code Playgroud)

但要获得跨数据库语法,您可能需要创建一个用户定义的函数(例如uuid),然后使用:

INSERT INTO survey_definition (id, name, period) 
VALUES (uuid('2D1EBC5B7D2741979CF0E84451C5BBB1'), 'disease-activity', 'P1M');
Run Code Online (Sandbox Code Playgroud)