如何在Postgres的uuid列中插入值?

时间:2019-02-13 18:17:03

标签: postgresql text casting sql-update uuid

我有一个带有uuid列的表,并且某些行缺少数据。我需要将数据插入此uuid列中。数据是手动输入的,因此我们在后缀其他列数据时加以区分,但这给我一个错误。

UPDATE schema.table 
    SET uuid_column = CONCAT ('f7949f56-8840-5afa-8c6d-3b0f6e7f93e9', '-', id_column) 
WHERE id_column = '1234';
  

错误:[42804]错误:“ uuid_column”列的类型为uuid,但表达式的类型为text
  提示:您将需要重写或强制转换表达式。
  位置:45

我也尝试过

UPDATE schema.table 
   SET uuid_column = CONCAT ('f7949f56-8840-5afa-8c6d-3b0f6e7f93e9', '-', id_column)::uuid 
WHERE id_column = '1234';
  

错误:[22P02]错误:uuid的输入语法无效:“ f7949f56-8840-5afa-8c6d-3b0f6e7f93e9-1234”

1 个答案:

答案 0 :(得分:0)

UUID由16个字节组成,您会看到以十六进制表示。

您的UUID不能包含更少或更多的字节。

如果您确实需要这样做,建议您使用bytea类型。