首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Alter column type character varying(3)为布尔型,不会丢失数据

Alter column type character varying(3)为布尔型,不会丢失数据
EN

Stack Overflow用户
提问于 2017-02-24 20:15:38
回答 1查看 4.1K关注 0票数 4

我正在使用postgres。我创建了一个表xyz,其中一个列abc的类型为character varying(3)。我在abc列中保存了'YES''NO'

我在表中存储了一段时间的数据。但是现在需求已经改变了。我们需要将abc列类型从character varying(3)更改为boolean

我们是否可以将abc类型从character varying(3)更改为boolean,将data YES更改为true,将NO更改为false

请帮助我,否则,如果我们不想丢失我们的数据,我如何继续。

我使用查询

代码语言:javascript
复制
ALTER TABLE xyz ALTER abc TYPE boolean
USING CASE abc WHEN 'YES' THEN TRUE ELSE FALSE END;

但是它不工作,它抛出的错误不能自动转换为boolean类型

EN

回答 1

Stack Overflow用户

发布于 2017-02-24 20:23:05

您在abcWHEN之间缺少一个空格

代码语言:javascript
复制
ALTER TABLE xyz ALTER abc TYPE boolean
USING CASE abc WHEN 'YES' THEN TRUE ELSE FALSE END;
-- Here ------^

此外,您可能希望确保只将'YES''NO'转换为布尔值:

代码语言:javascript
复制
ALTER TABLE xyz ALTER abc TYPE boolean
USING CASE abc WHEN 'YES' THEN TRUE 
               WHEN 'NO'  THEN FALSE 
      END;
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42438414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档