ORACLE中将一列已有数据的字段类型进行改变的解决方案
来源:互联网 发布:java中锁的种类 编辑:程序博客网 时间:2024/04/29 06:28
记录一下自己今天遇到的一个 实际的问题,客户在使用的一个系统中,其中一张表的主键以前定义的是Number型,通俗来说就是数字 类型。主键使用序列进行生成的,后来在代码重构以后,主键改为随机生成的一个16位的字符串。将字符串类型的数据往Number类型的字段里面插入时,是会报错的。第一反应就是去数据库将Number类型改成varchar类型,但是在改的时候,会提示你要修改数据类型,则要修改的列必须为空。那么问题来了,如何将一列已有数据的字段类型进行改变呢?
现在来仔细说一下问题的解决方案,操作如下:
1.在操作数据库的时候一定要谨慎,所以首先我们先将这张表进行备份,create table 新建的表名 as select * from table(注意某些字段是有默认值的,不要掉)
2.将要修改类型的字段进行重命名,alter table 表名 rename column DBID to DBID1;(将 主键dbid重命名为dibid1)
3.在表中新建一个原来的字段,ALTER TABLE 表名 ADD DBID VARCHAR2(100);
4.将原来那一列的数据进行类型转换后给现在的字段,UPDATE 表名 t SET t.dbid = to_char(t.dbid1);
5.删除原来的字段,ALTER TABLE y_ent_cert DROP COLUMN dbid1;
6.将现在的dbid设为主键,alter table 表名 add constraint pk_id primary key(id);
再次提醒,数据操作需谨慎,切记做好备份。。。
- ORACLE中将一列已有数据的字段类型进行改变的解决方案
- Oracle修改已有数据的字段类型
- oracle处理已有数据的字段(主键)类型修改方法
- Oracle中在已有数据的表中更改字段类型(四步)
- oracl 修改已有数据的字段类型
- 如何给Oracle已有数据的表增加字段
- oracle 在有数据的前提下变更字段类型
- mysql and oracle 对有数据的字段类型修改
- oracle更改字段,表名和复制一列的数据
- word 中将一列数据转换成连续的一行数据
- Oracle数据库中,如何给已有很多数据的表填充自增序列字段
- Oracle中将含数据的BLOB字段转化为含数据的varchar2字段
- 已有大量数据的表加字段的方法
- Oracle 修改带数据的字段类型
- Oracle 修改带数据的字段类型
- Oracle 修改带数据的字段类型
- Oracle 修改带数据的字段类型
- Oracle 修改带数据的字段类型
- SQL基本语法&SQLite
- (礼拜五log)document.cookie AND 前端图标推荐
- scrapy安装
- zeppelin的安装与使用
- 每天一个linux命令(7):mv命令
- ORACLE中将一列已有数据的字段类型进行改变的解决方案
- 通知机制(NSNotification)
- Android动态改变布局
- 秒杀多线程第四篇 一个经典的多线程同步问题
- 在服务器上配置Git仓库
- Android 菜单BoomMenu(悬浮按钮弹出菜单)
- git tag
- poj 1141 Brackets Sequence(区间dp)
- AAC ADTS格式分析