我有一张带有
uuid
列的表格,其中一些行缺少数据。我需要向这个uuid
列插入数据。这些数据是手动输入的,因此我们会加上其他列的后缀以区分,但这会导致错误。UPDATE schema.table
SET uuid_column = CONCAT ('f7949f56-8840-5afa-8c6d-3b0f6e7f93e9', '-', id_column)
WHERE id_column = '1234';
错误:[42804] 错误:列 "uuid_column" 的类型为 uuid,但表达式的类型为文本
提示:您需要重写或转换表达式。
位置:45
我还尝试了
UPDATE schema.table
SET uuid_column = CONCAT ('f7949f56-8840-5afa-8c6d-3b0f6e7f93e9', '-', id_column)::uuid
WHERE id_column = '1234';
该错误提示表示输入的UUID格式不正确,最后的“-1234”是无效的。请检查输入的UUID是否符合标准格式。错误:[22P02] 错误:UUID的输入语法无效:"f7949f56-8840-5afa-8c6d-3b0f6e7f93e9-1234"
f7949f56-8840-5afa-8c6d-3b0f6e7f93e9
已经是完整且有效的UUID,您不能追加任何值。你究竟想通过这样做解决什么问题?如果您想生成UUID,请安装 uuid-ossp扩展,并使用例如uuid_generate_v4()
函数。 - user330315_uuid_column_
是否是手动添加的。另一种选择是将列类型从uuid
更改为varchar
,但这会使其他地方变得更加困难。 - pirho