将varchar列转换为UUID

时间:2019-02-08 13:20:49

标签: postgresql

我想更改PostgreSQL中列的数据类型:

alter column camelCaseColumn TYPE uuid USING uuid(camelCaseColumn)

但是我似乎找不到解决方法。问题是当我在uuid调用中使用双引号时,出现错误:

  

uuid的输入语法无效:“”

我的方法是否有问题或有解决此问题的方法。

1 个答案:

答案 0 :(得分:3)

错误消息似乎表明您正在从文本(或varchar)列转换为uuid,并且该列中有空字符串('')。在这种情况下,您需要将它们视为NULL。列名与该错误无关。

alter column camelCaseColumn TYPE uuid USING uuid(nullif(camelCaseColumn, ''));

但是,如果您确实创建了大小写混合的列(这是一个不好的主意),则必须使用双引号来引用它们:

alter column "camelCaseColumn" TYPE uuid USING uuid(nullif("camelCaseColumn", ''));