Oracle更新字段属性

低精度转高精度直接

--修改单个字段
ALTER TABLE 表名 modify(字段名1 新属性);
--修改多个
ALTER TABLE 表名  modify (字段名1 新属性,字段名2 新属性);

如果高精度转低精度会报错如下: ORA-01440:要减小精度和标准,则要修改的列必须为空

两种方法
1.如果修改的字段比较多,可以考虑先备份表,再转移数据。

--备份:
create table 备份表名 as select * from  原始表名;
--删除原始表内的数据:
delete  from 原始表名;
--修改表结构: 如要修改多个参考上面
alter table productinfo modify(字段名1 新属性);
--还原表数据:
insert into productinfo select * from 备份表;

上述方法如果在只修改单一字段的话会转移不必要的数据,可以参考方法2.

2.如果修改单一字段,可以将字段重命名,再新命名个原始名,最后转移数据。

--重命名字段
ALTER TABLE 表名 RENAME COLUMN 原始字段名 TO  备份字段名;
--创建新字段名
ALTER TABLE 表名 ADD COLUMN 原始字段名 原始字段名的新属性;
--转移数据,将原始数据以新属性的格式存储
UPDATE 表名 SET 原始字段名 = CAST(备份字段名 原始字段名的新属性);
--删除备份字段
ALTER 表名 DROP COLUMN 备份字段;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值