在postgresql中的UUID字段中存储非UUID字符串

问题描述 投票:1回答:1

我有一些字符串,如12344(4-5位数字),我想存储在postgresql表中,列数据类型为UUID。这些是需要编制索引的列。从文档来看,UUID似乎是具有128位数量的a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11等格式的字段。

那么可以在UUID数据字段中存储像12344这样的字符串吗?目前收到“无效的类型输入字符串错误”

  pstmt.setObject(1,"12344",java.sql.Types.OTHER);
java postgresql-9.4
1个回答
1
投票

不是直接的。但是您可以从长值构建UUID:

    long val = 12344;
    pstmt.setObject(1,new UUID(0, val),java.sql.Types.OTHER);

请注意,该值将是“UUID编码”,因此您将无法执行某些select * from table where val = 12344。您必须先计算相应的UUID。

© www.soinside.com 2019 - 2024. All rights reserved.