HSQLDB执行VALUES(UUID())得到无格式UUID,如何获取格式化UUID?
获取HSQLDB格式化UUID的方法
当然有办法获取带标准分隔符的格式化UUID啦!HSQLDB提供了专门的内置函数来处理这个需求:
推荐方案:使用UUID_TO_CHAR()函数
这是最简洁可靠的方式,HSQLDB的UUID_TO_CHAR()函数可以直接将原生无格式的UUID转换为符合RFC 4122标准的带横杠格式字符串。执行以下语句即可:
VALUES (UUID_TO_CHAR(UUID()))
执行后会返回类似这样的结果:550e8400-e29b-41d4-a716-446655440000
兼容旧版本的手动拼接方案
如果你使用的是较旧版本的HSQLDB(未提供UUID_TO_CHAR()函数的版本),可以通过字符串截取和拼接的方式实现。不过要注意先把生成的UUID存到变量里,避免多次调用UUID()生成不同的值:
DECLARE @uuid CHAR(32); SET @uuid = UUID(); VALUES (CONCAT( SUBSTRING(@uuid FROM 1 FOR 8), '-', SUBSTRING(@uuid FROM 9 FOR 4), '-', SUBSTRING(@uuid FROM 13 FOR 4), '-', SUBSTRING(@uuid FROM 17 FOR 4), '-', SUBSTRING(@uuid FROM 21 FOR 12) ))
内容的提问来源于stack exchange,提问作者Petrik Anderson
相关产品推荐
相关产品推荐

