如何将text
s 数组转换为UUID
s数组?
我需要join
在两个表之间做一个:users
和projects
。
该users
表有一个名为的数组字段,project_ids
其中包含作为文本的项目 ID。
该projects
表有一个名为 的 UUID 字段id
。
我最初的想法是一个查询看起来像:
SELECT * FROM projects
JOIN users ON
projects.id = ANY(users.project_ids)
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为users.project_ids
不是,UUID
所以我试过:
projects.id = ANY(users.project_ids::uuid[])
Run Code Online (Sandbox Code Playgroud)
乃至:
projects.id = ANY(ARRAY[users.project_ids]::uuid[])
Run Code Online (Sandbox Code Playgroud)
但没有一个有效:
Run Code Online (Sandbox Code Playgroud)ERROR: invalid input syntax for type uuid: ""
更新
@a_horse_with_no_name 绝对正确。最好的选择应该是使用一组 UUID。
现在的问题是我如何可以改变的阵列text
到阵列uuid
?
该users
表当前为空(0 条记录)。
我试过了
ALTER TABLE "users" ALTER COLUMN "project_ids" SET …
Run Code Online (Sandbox Code Playgroud)