我正在使用postgres。我创建了一个表xyz,其中一个列abc的类型为character varying(3)。我在abc列中保存了'YES'或'NO'。
我在表中存储了一段时间的数据。但是现在需求已经改变了。我们需要将abc列类型从character varying(3)更改为boolean。
我们是否可以将abc类型从character varying(3)更改为boolean,将data YES更改为true,将NO更改为false
请帮助我,否则,如果我们不想丢失我们的数据,我如何继续。
我使用查询
ALTER TABLE xyz ALTER abc TYPE boolean
USING CASE abc WHEN 'YES' THEN TRUE ELSE FALSE END;但是它不工作,它抛出的错误不能自动转换为boolean类型
发布于 2017-02-24 20:23:05
您在abc和WHEN之间缺少一个空格
ALTER TABLE xyz ALTER abc TYPE boolean
USING CASE abc WHEN 'YES' THEN TRUE ELSE FALSE END;
-- Here ------^此外,您可能希望确保只将'YES'和'NO'转换为布尔值:
ALTER TABLE xyz ALTER abc TYPE boolean
USING CASE abc WHEN 'YES' THEN TRUE
WHEN 'NO' THEN FALSE
END;https://stackoverflow.com/questions/42438414
复制相似问题