Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何在h2数据库中插入特定的UUID?_Mysql_H2_Uuid - Fatal编程技术网

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

Mysql 如何在h2数据库中插入特定的UUID?,mysql,h2,uuid,Mysql,H2,Uuid,我需要在数据库中插入一些默认数据。我使用的是带有Flyway集成的Spring Boot。对于测试,我使用H2。对于生产,将使用MySQL 我已经制作了单独的Flyway迁移脚本,因此我可以对默认数据使用特定于数据库的内容(创建表是在一个通用脚本中完成的) 对于MySQL,我有如下内容: INSERT INTO survey_definition (id, name, period) VALUES (0x2D1EBC5B7D2741979CF0E84451C5BBB1, 'disease-ac

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

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

对于MySQL,我有如下内容:

INSERT INTO survey_definition (id, name, period) 
VALUES (0x2D1EBC5B7D2741979CF0E84451C5BBB1, 'disease-activity', 'P1M');
如何对H2执行相同的操作


我只找到了可用的
RANDOM\u UUID()
函数,但我需要使用一个已知的UUID,因为我在以后的语句中将它用作外键。

最好使用适用于所有数据库的语法。我认为大多数数据库不支持
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');

使用不同于生产的数据库进行测试似乎是一场灾难。除非首先在MySQL上进行测试,否则如何确保代码在MySQL上正确运行?能否更详细地解释用户定义的函数?如何创建它以及它看起来如何?这取决于数据库。对于H2,它将有一个参数,并返回该参数。