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