zoukankan      html  css  js  c++  java
  • oracle 修改字段类型方法

    因为业务需要,修要修改某个字段数据类型有number(5),变为number(5,2)型

      要是没有数据的话直接用以下语句即可

      alter   table tb_test modify permile number(5,2);

      但是有数据的话 就不能用上面方法了,

      alter table tb_test add permile_temp number(5,2)

      update tb_test set permile_temp=permile;

      alter table drop column permile;

      alter table test rename column permile_temp to permile;

      这种方法会使列名发生变化,而且字段顺序增加 有可能发生行迁移,对应用程序会产生影响

      以下方法是比较好的方法

      不用使列名发生变化 也不会发生表迁移,但这个有个缺点是表要更新两次

      如果数据量较大的话 产生的undo和redo更多 ,前提也是要停机做

      要是不停机的话 ,也可以采用在线重定义方式来做

      以下是脚本:

      alter table tb_test add permile_temp number;

      Add/modify columns

      alter table tb_test modify PERMILE null;

      update tb_test set permile_temp=permile,permile=null;

      commit;

      alter table tb_test modify permile number(5,2);

      update tb_test set permile=permile_temp,permile_temp=null;

      commit;

      alter table tb_test drop column permile_temp;

      alter table tb_test modify PERMILE not null;

      select * from tb_test ;

  • 相关阅读:
    [C/C++开发] Clion利用Docker开发和调试PHP扩展
    [C/C++开发] Clion利用Docker开发和调试PHP内核
    [C/C++开发] Clion利用Docker开发和调试Linux C/C++程序
    [Docker] 使用ubuntu涉及时区问题
    Oracle 导入 SQL 文件
    转载
    微信小程序
    微信小程序-点击复制功能
    服务器端基础概念
    VSCode 同步设置插件
  • 原文地址:https://www.cnblogs.com/dogxuefeng/p/2729782.html
Copyright © 2011-2022 走看看