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

时间:2019-04-11 14:03:57

标签: java postgresql-9.4

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

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

  pstmt.setObject(1,"12344",java.sql.Types.OTHER);

1 个答案:

答案 0 :(得分:1)

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

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

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