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

标签 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);

最佳答案

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

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

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

关于java - 在postgresql中的UUID字段中存储非UUID字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55634426/

相关文章:

java - JTextArea 不会使用布局管理器收缩到 JPanel 内

java - 在 Linux 上使用 Swing «artifacts» 实现一个非常简单的 GUI 程序

postgresql - 在 PostgreSQL 9.4 中通过 ts_vector 中的出现次数查询词素

sql - 创建存储过程(int[] 作为参数),当 int 数组中没有匹配项时删除表中的现有记录

postgresql - postgres 在 current_date 查询分区表

java - 为什么 Calendar.getActualMaximum 不起作用

java - URLEncoder.encode() 和空格?

java - Playframework 从服务器获取客户端 IP,而不是从 cookie

sql - 给定特定列排序顺序,为每一行返回表中的第一个条目

java - PostgreSQL/JDBC - 如何准备调用带有参数 CITEXT (TEXT) 的函数?