如何使用sql脚本将特定的uuid插入到h2数据库中



我正在使用一个h2数据库来运行我的测试,在测试之前我需要在数据库中插入一些默认值。我正试图为此编写一个sql脚本,但是,在将uuid作为值插入相关表时遇到了问题。

我尝试插入uuid,如下所示;然而,insert into user_profile_table (profile_id, user_id) values (1, 'c80d54d3-500d-4539-9479-8e8961477193');收到一个JdbcSQLDataException错误,声明:列的值太长。

我认为这是因为user_id列类型是BINARY(16(,所以我决定尝试以下查询insert into user_profile_table (profile_id, userkeycloak_id) values (1, UNHEX(REPLACE('c80d54d3-500d-4539-9479-8e8961477193', '-','')));,但是,然后我得到一个错误:JdbcSQLSyntaxErrorException:Function"UNHEX";未找到;SQL语句。我在网上看到h2数据库不支持unxx功能。我试图寻找其他方法来将uuid转换为与h2数据库兼容的格式,但一直未能找到可行的解决方案。

因此,我的问题是:有没有任何查询可以用来将uuid(以BINARY(16((格式插入到h2db表中?如有任何建议,我们将不胜感激。

要在BINARY(16)列中插入UUID值,可以在MySQL和H2:中使用标准二进制字符串文字

insert into user_profile_table (profile_id, user_id)
values (1, X'c80d54d3500d453994798e8961477193');

试试微软的这个解决方案:https://learn.microsoft.com/en-us/sql/t-sql/data-types/uniqueidentifier-transact-sql?view=sql-服务器-ver16

相关内容

  • 没有找到相关文章

最新更新