ORA-01440不删除数据做修改

项目初期修改数据库的字段类型或精度还比较方便,因为这时候数据也都处于测试数据,还没个定性,但是一旦生产的数据刷上来后,就不能再做删数据,然后修改字段,最后再把数据刷回去这种操作了。

可以使用以下思路实现不删除数据同时达到修改的效果,比如下面是要改数据类型的精度,使数据支持2位小数

--先把原来表的字段名称修改成另一个字段名
ALTER TABLE "表名" RENAME COLUMN "旧字段名" TO "新字段名";

--再新增一个新的字段和原来的字段名一样,同时设置精度,这就是我们最后要的字段
ALTER TABLE "表名"
ADD ( "旧字段名" NUMBER(10,2) NULL  ) ;

--把表的旧字段的值(这里已经是新字段名了)设置到新字段(这个新字段的名称却和旧字段一样)上,这样就实现了数据的变相迁移
update "表名" set "旧字段名"="新字段名";

--删除旧字段,要注意这个旧字段已经被改成一个新的字段名了
ALTER TABLE "表名" DROP("新字段名");

总结

通过上述操作,就做到了在不删除数据的前提下,同时保证了类型的修改需求。

原创文章 358 获赞 387 访问量 7万+

猜你喜欢

转载自blog.csdn.net/weixin_38106322/article/details/105557995