【数据库】Oracle实现判断条件批量修改功能

   日期:2020-10-16     浏览:169    评论:0    
核心提示:背景: 由于拆库项目发展,需要对表进行简单重构;业务要求迁移的表需要存在 ‘添加人ID’,‘添加人’,‘添加时间’,‘修改人ID’,‘修改人’,‘修改时间’几个字段,原表不存在的这几个字段需要进行新增字段。并且要求这几个字段都应设置‘不可为null。 在数据转移时原数据可为null的字段覆盖不可为null字段时会导致数据转移失败(如:原表的添加时间为null,数据转移到添加时间不可为null的新表时就会发生报错);所以在表迁移初期这几个字段都设置为‘可为null’.目的: ...

背景:

    由于拆库项目发展,需要对表进行简单重构;业务要求迁移的表需要存在 ‘添加人ID’,‘添加人’,‘添加时间’,‘修改人ID’,‘修改人’,‘修改时间’几个字段,原表不存在的这几个字段需要进行新增字段。并且要求这几个字段都应设置‘不可为null。

   就需要在保证新增的数据已经存在默认值的情况下,对原来的数据进行修复再做数据转移(如图将每个为null的字段分别进行赋值);


update TABLE_NAME
set 
  CREATE_USER_ID = case  when CREATE_USER_ID is null then 333 else CREATE_USER_ID end,
  CREATE_USER_NAME =  case when CREATE_USER_NAME is null then'系统' else CREATE_USER_NAME end,
  CREATE_DATETIME= case when CREATE_DATETIME is null then sysdate else CREATE_DATETIME end,
  UPDATE_USER_ID= case when UPDATE_USER_ID is null then 333 else UPDATE_USER_ID  end,
  UPDATE_USER_NAME= case when UPDATE_USER_NAME is null then '系统' else UPDATE_USER_NAME  end,
  UPDATE_DATETIME= case when UPDATE_DATETIME is null then sysdate else UPDATE_DATETIME end
where 
CREATE_USER_ID is null or CREATE_USER_NAME is null or CREATE_DATETIME  is null or 
UPDATE_USER_ID is null or UPDATE_USER_NAME is null or UPDATE_DATETIME is null  ;

 

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服