我需要将 String ( text ) 转换为 UUID ( Postgres ) 并保持与 String 相同的排序。可能吗?我当时看到了UUID,所以也许不可能?
问问题
45097 次
4 回答
41
在 PostgresSQL 的 SQL 语法中使用
concat(UUID,'')
得到一个文本结果。使用
uuid(text)
得到一个 UUID 结果。
于 2016-01-07T10:17:51.173 回答
8
在 PostgreSQL 中,除了 using 之外uuid()
,还可以像这样显式指定类型::uuid
:
with myconst (__ef_filter__id_0, __filter_workitemid_0, __filter_projectid_1, __id_2) as (
values ( 'fcb8284c-1bd4-4d50-b5df-09a091b01d8c'::uuid, '9e4b70a7-c222-47dd-87cb-fbbaaf396ccd'::uuid, uuid('2b10c0a5-e35d-425d-a71a-9e473924ac4c'), uuid('3fa85f64-5717-4562-b3fc-2c963f66afa6')) )
select ...
于 2020-08-12T08:04:30.223 回答
3
JDK 中有一个专门用于管理 UUID 的类,称为java.util.UUID
. 其中有一个静态方法fromString
应该适合您的目标。据我所知,您可以在 JDBC 插入语句中使用 UUID 的实例。
于 2012-10-07T18:57:10.393 回答
2
在oVirt开源项目中,我们使用 PostgreSQL uuid 类型来存储我们的主键和外键。
我们构建了一个名为 Guid 的包装器,它使用 java.util.UUID 类来保存从 DB 读取的数据。
在检索 ResultSet(我们使用 spring-jdbc)时,我们使用 getString 方法来获取 UUID 值作为 String,然后使用 java.util.UUID 的 fromString 方法。
您可以 git clone 我们的项目并查看 ovirt-engine/backend/manager/modules/dal(我们的数据访问层)项目以获取更多信息。
于 2012-10-07T19:21:14.127 回答