dfkt.net
当前位置:首页 >> orAClE同时更新两张表 >>

orAClE同时更新两张表

两个表关联起来,就可以更新,如:UPDATE product p, productPrice pp SET pp.price = pp.price * 0.8 WHERE p.productId = pp.productId AND p.dateCreated 评论0 0 0

可以实现,只是不太明白你的业务需求.已理解:1、sysdata、bankdata 两张数据表中 都有结构相同字段:卡号、金额、状态;2、两张表中,卡号、金额都分别一样的要更改字段状态;3、更改状态数量是根据bankdata、sysdata哪个记录少的那个记录数.不理解:1、更改一张表还是两张都要改;2、如果sysdata 有三条,bankdata有十条,更新三条(哪个表的三条?)3、如果两张都要改,bankdata有十条(要改哪三条?)

肯定是不可以的.首先,ORACLE没有UPDATE FROM这样的语法,这是SQLSERVER才支持的.另外,更新哪个表,是由UPDATE后边的表名决定的,所以通过语句一次只能更新一个表.如果是同时更新两表,要不你就写两个语句,要不就通过触发器,一表更新同时触发另一个表的更新.

这个你去找Oracle 的开发商,要他定做一个Update 语句,如 update 表名1,表名2..set 1.a=' ,2.a=' where 1.b=' and 2.b=';(当然这样完全没有必要了,哈哈)

先把BC两表数据整合一下,create view V_BC select B.T,B.ID, FROM B UNION SELECT C.T,C.ID FROM C.

没见过这么用的,估计不行,如果真的需要这么更新可以尝试触发器.

update 表名 set 字段名=需要的值 where 字段=条件where中的条件最好是主键,oracle自动给主键加索引,这样数据库大的时候能快的多.建议你跟踪下你的语句,有时在SQL执行计划中观察你的SQL虽然用了索引,但是正常执行时,由于数据量的问题,Oracle会认为全表扫描会比用索引快,所以就全表扫描了,你不如加上强制索引试试.就字段这么多

select * from all_object where owner='用户名' and object_name='表名';好像还有个类型,你可以看下上面的表字段,表结构可可以查,select * from user_tab_colmuns;数据比较只有查询两个表了select * from table1 a where not exits(select 1 from table2 b where a.col1=b.col1)

先建立一个结构一模一样的表emp1,并为其插入部分数据 create table emp1 as 在oracle中不存在update from结构,所以遇到需要从另外一个表来更新本表的值的问题的

使用触发器,触发器的作用可以在对一个表进行操作的时候,同时自动对另一个表作更新插入或删除

ceqiong.net | sichuansong.com | hbqpy.net | mtwm.net | fnhp.net | 网站首页 | 网站地图
All rights reserved Powered by www.dfkt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com