我想更改PostgreSQL中列的数据类型:
alter column camelCaseColumn TYPE uuid USING uuid(camelCaseColumn)
但是我似乎找不到解决方法。问题是当我在uuid
调用中使用双引号时,出现错误:
uuid的输入语法无效:“”
我的方法是否有问题或有解决此问题的方法。
答案 0 :(得分:3)
错误消息似乎表明您正在从文本(或varchar)列转换为uuid,并且该列中有空字符串(''
)。在这种情况下,您需要将它们视为NULL。列名与该错误无关。
alter column camelCaseColumn TYPE uuid USING uuid(nullif(camelCaseColumn, ''));
但是,如果您确实创建了大小写混合的列(这是一个不好的主意),则必须使用双引号来引用它们:
alter column "camelCaseColumn" TYPE uuid USING uuid(nullif("camelCaseColumn", ''));