因爲數據庫一開始用的mysql 現在改成postgresql,數據遷移或多或少出現問題,
想把postgre的int2類型改爲bool(布爾)類型報錯。那就只能換種方式了。
語句解釋:
ALTER TABLE 表名 ALTER COLUMN 字段名 TYPE 需要轉換的類型 USING 字段名::需要轉換的類型;
1;用的navicat工具,修改ce字段爲bool類型
執行sql
ALTER TABLE cehsi ALTER COLUMN ce TYPE VARCHAR USING ce ::VARCHAR;
update cehsi set ce='true' where ce='1';
update cehsi set ce='false' where ce='0';
ALTER TABLE cehsi ALTER COLUMN ce TYPE bool USING ce ::bool;
完成看效果
中間的更新語句效果
溫馨提示:t和f就是true和false的縮寫
或者這樣寫
ALTER TABLE cehsi ALTER COLUMN zai TYPE VARCHAR USING zai ::VARCHAR;
ALTER TABLE cehsi ALTER COLUMN zai TYPE bool USING zai ::bool;
update cehsi set zai='true' where zai='1';
update cehsi set zai='false' where zai='0';