PLSQL_两表之间的相互操作

 一、从一个表插入到另一个表中

      表的插入操作,有时需要考虑到自增的情况,用到了nextval函数,然后利用 insert into table1 (....) select... from table2 的语法。注意select与()中的值 一 一对应。

      insert  into plan_target_run (spec_run_id, dept_id, cost_id, manage_id, attribute1, attribute2, attribute3,note, flag,last_update_date, last_updated_by)
      select plan_target_spec_run_s.nextval, t.dept_id, t.cost_id, t.manage_id, null,null, null,null, 0, sysdate, 1  from plan_target_library t  where t.dept_id=168875 and t.type_id=3

     上述语句是从plan_target_library表中插入相应的数据到plan_target_run中。


二、用一个表的数据更新另一表的数据

       从后台导入数据时,常常用到Excel格式导入,在建立临时表后,怎么把两个表对应起来是一个逻辑思考的问题。

       update plan_target_run t   set t.target_value = (select s.tempruntarget  from targetruntemp s  where s.temprunid = t.run_id)   where t.run_id in  (select s.temprunid from targetruntemp s where s.temprunid = t.run_id)
        上述中 select s.teamruntarget  from targetruntemp s  where s.temprunid = t.run_id   t.run_id是对表plan_target_run遍历过程中的某一个确定值,因此这条语句是一条记录。与select s.temprunid from targetruntemp s where s.temprunid = t.run_id一样  t.run_id是确定的,两者操作的是统一记录,获取不同的属性。

        多么复杂的关系,都记住常规语法,update table1 set table1.attribute=... where (条件)。


转载于:https://my.oschina.net/twenty/blog/285651

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值