解決postgreSql 將Varchar類型字段修改為Int類型報錯的問題

項目使用postgreSql數據庫,先需要將庫中的某個表中的某個字段類型由Varchar改成Int,直接右鍵設計表,修改類型為int,保存的時候報錯,錯誤如下:

意思就是,這個crt_user字段不能自動轉換成成類型bigint,需要使用USING表達式來轉換。

這是在庫中運行修改字段的類型的sql:

ALTER TABLE auth_client_service ALTER COLUMN crt_user
SET DATA TYPE int8 USING crt_user:: int8,
 ALTER COLUMN crt_user

SET DEFAULT 0;

至此,類型修改成功。

補充:PostgreSQL中將Integer類型的字段轉換成Varchar類型的字段

rt,直接用pgadmin是沒有辦法進行這個轉換的。

通過執行sql卻是可以做到的,關鍵是添加USING表達式,這個表達式的意思是如何初始化這個字段。

比如下面的例子將整形轉換成varchar(16)類型

ALTER TABLE app.app_high_school_score

ALTER COLUMN chinese TYPE character varying(16) USING (chinese::character varying(16));

USING 中也可以使用CAST操作符,例如:

USING CAST(column_name AS integer)

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。

推薦閱讀: