gpt4 book ai didi

sql - 在不丢失数据的情况下将列类型字符 varying(3) 更改为 bool 值

转载 作者:行者123 更新时间:2023-11-29 12:35:58 26 4
gpt4 key购买 nike

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

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

有什么方法可以将 abc 类型从 character varying(3) 更改为 boolean 并更改数据 YEStrueNOfalse?

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

我使用查询

ALTER TABLE xyz ALTER abc TYPE boolean
USING CASE abc WHEN 'YES' THEN TRUE ELSE FALSE END;

但它不起作用,它抛出错误无法自动转换为类型 bool 值

最佳答案

abcWHEN 之间缺少空格:

ALTER TABLE xyz ALTER abc TYPE boolean
USING CASE abc WHEN 'YES' THEN TRUE ELSE FALSE END;
-- Here ------^

此外,您可能希望确保只有 'YES''NO' 被转换为 bool 值:

ALTER TABLE xyz ALTER abc TYPE boolean
USING CASE abc WHEN 'YES' THEN TRUE
WHEN 'NO' THEN FALSE
END;

关于sql - 在不丢失数据的情况下将列类型字符 varying(3) 更改为 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42438414/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com