Postsql 修改字段長度和類型


以后更改字段長度會重寫表,如果表比較大,那么表會加鎖,需要很長時間

通過一種方法通過修改pg_attribute.atttypmod字段修改長度,不需要重寫表
 查詢select * from pg_attribute where attrelid='sp_sa_salestat'::regclass and attname='goodsname'
將字段opcode修改為100長度單位 
update pg_attribute set atttypmod=206 where attrelid='sp_sa_salestat'::regclass and attname='goodsname'; 

對於numric型長度是按整數轉換的必須先查找要修改的長度在數據庫里面的值,如numeric(12,4)長度是786440

 

修改字段類型 

(如果表里有數據,謹慎使用!!!
如果表里有數據,謹慎使用!!!
如果表里有數據,謹慎使用!!!)

當列的類型為字符類型,當我們想修改為數值類型時
ALTER TABLE the_table ALTER COLUMN col_name TYPE integer USING (col_name::integer);

  如果字段里有空白字符,使用以下方法:

ALTER TABLE the_table ALTER COLUMN col_name TYPE integer USING (trim(col_name)::integer); 

在類型轉換前先去空白。

 

修改類型為字符類型

ALTER TABLE the_table ALTER COLUMN col_name TYPE character varying(30) USING (col_name::character varying(30));

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM