質問: postgresは列整数をブール値に変更します integer not null default 0のフィールドがあるので、これをブール値に変更する必要があります。これは私が使用しているものです:alter table mytabe alter mycolumn type bool using case when 0 then false else true end; しかし、私は得ています:error: argument of case/when must be type boolean, not type integer ********** error ********** error: argument of case/when must be type boolean, not type integer sql state: 42804 何か案が?ありがとう。
回答: これを試して:alter table mytabe alter column mycolumn drop default; alter table mytabe alter mycolumn type bool using case when mycolumn=0 then false else true end; alter table mytabe alter column mycolumn set default false; 最初に(ブール値ではないため)制約を削除する必要があり、次にcaseステートメントが構文的に間違っていました。