PostgreSQL 修改列報錯:cannot be cast smallint to type boolean

因爲數據庫一開始用的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';
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章