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

时间:2016-04-08 08:03:06

标签: mysql h2 uuid

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

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

对于MySQL,我有类似的东西:

INSERT INTO survey_definition (id, name, period) 
VALUES (0x2D1EBC5B7D2741979CF0E84451C5BBB1, 'disease-activity', 'P1M');

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

我只发现了RANDOM_UUID()函数,但是我需要使用已知的UUID,因为我在其他语句中将它用作外键。

1 个答案:

答案 0 :(得分:1)

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

INSERT INTO survey_definition (id, name, period) 
VALUES ('2D1EBC5B7D2741979CF0E84451C5BBB1', 'disease-activity', 'P1M');

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

INSERT INTO survey_definition (id, name, period) 
VALUES (uuid('2D1EBC5B7D2741979CF0E84451C5BBB1'), 'disease-activity', 'P1M');