Oracle Update 单表和多表更新

一、环境说明
  oracle环境中,想对A表进行更新,对A表更新的字段来源于B表,涉及到多表更新,更新时提示“ora-01407:cannot update(XX.item_class) to NULL”,发现语句写得有问题,就整理一下单表与多表的更新。

二、单表更新

    单表列新的SQL比较简单,刚开始学及工作中经常用到。

   1.1 更新单表、单字段

         基本格式:
update TableName set column1=value1 where condition=value1;

   1.2 更新单表、多字段

基本格式:

update TableName set column1=value1,column2=value2,column3=value3 where condition=value1;

三、多表更新

    常用的oracle格式如下:
         
update table1 a set (a.字段1,....,a.字段N) =(select b.字段1,...,b.字段N from table2 b where 两个表的关联字段)
         where exists (select 1 from table2 b where 两个表的关联字段)。

   注意:oracle语句里的exists不能省略,否则会导致没有对应关系的数据修改错误,甚至会报错。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8043290/viewspace-1591426/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8043290/viewspace-1591426/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值