alter table Sys_Duties add tmp_col VARCHAR2(100);-- 添加临时列
update Sys_Duties set tmp_col = JOB_ID ; --将目标字段中数据加入到临时列中
update Sys_Duties set JOB_ID = null; --将目标字段数据清空,主键不能为空,随便给值
alter table Sys_Duties modify JOB_ID VARCHAR2(100); --更改目标字段类型
update Sys_Duties set JOB_ID = tmp_col; --将临时列数据加回到目标字段中
alter table Sys_Duties drop column tmp_col; --清除临时列
update Sys_Duties set tmp_col = JOB_ID ; --将目标字段中数据加入到临时列中
update Sys_Duties set JOB_ID = null; --将目标字段数据清空,主键不能为空,随便给值
alter table Sys_Duties modify JOB_ID VARCHAR2(100); --更改目标字段类型
update Sys_Duties set JOB_ID = tmp_col; --将临时列数据加回到目标字段中
alter table Sys_Duties drop column tmp_col; --清除临时列

本文介绍了一种在Oracle数据库中安全地更改表字段类型的方案。通过添加临时列转移数据、清空原字段、修改字段类型再回迁数据的方法,避免了直接修改导致的数据丢失风险。
744

被折叠的 条评论
为什么被折叠?



