oracle10-关于oracle同时往两张表添加数据的问题

问题描述

关于oracle同时往两张表添加数据的问题

语句如下
declare
sacn varchar2(15) :='111'||lpad(seq_no.nextval,12,0);
begin
insert all
into customer(costomer_no,costomer_type)
values(sacn,'P')
into person(costomer_no,name,tel,address)
select ****,ps.name,ps.tel,ps.address
from somepeople ps
where not exists(select 1 from (select * from person p,somepeople ps where p.name=ps.name and p.tel=ps.tel and p.address=ps.address));
end;
大概就是这样了。要求是c表和P表的costomer_no要保持一致。当where not exists的条件成立,同时向两个表中添加数据,其中P表的数据是从PS表中查找到的。因为想要保证costomer表和person表的costomer_no是同样的值,所以先声明了一个sacn。但是我不知道星号处该怎么写,感觉写sacn应该不大合适,又不知道写什么好。
所以有两个问题,1、这样写格式有没有错误,有没有更适合以上要求的写法
2、如果按照这种写法,星号处应该怎么写。
求大神解惑。

解决方案

http://zhidao.baidu.com/link?url=455l2KCA0Ug-n1LAVPRIo_nkAEdZURMJuS0D2YVYGphVA_EfWo25MA4WojCc4aL4CEvahb4NjyPbxEr_4_ubcq

时间: 2025-01-20 16:07:37

oracle10-关于oracle同时往两张表添加数据的问题的相关文章

listview-将两张表的数据展示在一个ListView中

问题描述 将两张表的数据展示在一个ListView中 数据库中的数据如图所示,一共有5张表,三个数据表以及两个关系表.我现在需要将所有的project和exam读取出来然后将其中的name和description显示在同一个ListView中,根据数据表中的session sort no来排序. 现在的问题: 1.如何同时读取所有的exam和project数据并根据session sort no来排序呢?因为数据比较多,所以应该不会一次性完成读取,而是用类似SimpleCursorAdapter

更新表-sql 如何在建立一个存储过程时更新两张表的数据?

问题描述 sql 如何在建立一个存储过程时更新两张表的数据? create proc proc2 ( @OrderID int, @BookID varchar(20),--更新 orderInfo quantity:更新 orderSheet payment @BookStock int ) as update orderSheet set payment = b.newpay FROM orderInfo,orderSheet,(select (payment + price * @Book

oracle语句-有关两张表关联查询的sql问题

问题描述 有关两张表关联查询的sql问题 各位大神,一个sql问题请教下 有两张表,分别如下: 充值表t_recharge字段: userId.recharge_money.recharge_count 消费表t_consume字段: userId.consume_money.consume_count 现在的情况是用户可能只存在充值记录或者只存在消费记录,只存在充值记录时,消费记录显示0,只存在消费记录时,充值记录显示0 现在想查出这种结果: userId recharge_money rec

怎嘛快速比较两张表的数据差

问题描述 现在有A和B两张表,A表字段:a1b1c1d1B表字段:a1c1假如说A表有1000条数据B表有800条数据其中A表a1和c1和B表中a1和c1字段值相同的数据有500条怎嘛用sql查出来A表a1和c1和B表中a1和c1值不同的数据 解决方案 解决方案二:select*fromAwherea1notin(selecta1fromB)andc1notin(selectc1fromB)解决方案三:notexists判断.解决方案四:select*fromAjoinBonA.a1<>B.a

在VB中,同时修改两张表的数据,我试了好久它就是修改一张,哪位帮帮忙?

问题描述 呵呵,帮帮忙 解决方案 解决方案二:这也叫问题?难怪没人回答,连问问题都不会解决方案三:用两条sql语句,一条不行解决方案四:用兩個Update語句就可以了解决方案五:你把你的代码列出来,让大家看!!解决方案六:该回复于2008-05-06 16:55:32被版主删除解决方案七:引用3楼hurtsobad的回复: 用兩個Update語句就可以了 解决方案八:楼主的意思是不是将两张表关联,更新主表,从表也相应的更新呢?OTZ问题问得好笼统解决方案九:使用触发器吧

通过两张表查询数据的效率咨询

问题描述 问一下,我需要根据条件去两个数据表中取数据.我是先从一个表中取出数据后通过利用forallentriesin去另一张表中取数据效率高呢,还是通过innerjoin连接两张数据表取数据效率高呢,很是迷茫,还请高手指点,十分感谢-- 解决方案 解决方案二:这个要看具体情况,通常情况下如果两张表的关联都是关键字段时可以直接使用innerjoin,对于有些不是透明表(如簇表)是必须使用forallentriesin的.解决方案三:如果就是两张自己建的普通的表呢,比如说整两个表的关联字段有一张表

能不能同时向sql数据库两张表插入数据

问题描述 求存储过程或者语句也可,,,谢谢... 解决方案 解决方案二:两条sql不就行了insertA....insertB....解决方案三:所谓的同时是什么意思,原子操作?那要用存储过程加表锁了.如果说是必须同时成功,或同时失败.那就用事务.解决方案四:对了也可以用触发器来作解决方案五:两表有关系的话,需要加入事务处理.如果一旦失败,可以回滚操作.解决方案六:引用1楼bdmh的回复: 两条sql不就行了insertA....insertB.... ++简单省事解决方案七:引用楼主dupen

MySQL实现两张表数据的同步方法总结

有两张表A和B,要求往A里面插入一条记录的同时要向B里面也插入一条记录,向B里面插入一条记录的同时也向A插入一条记录.两张表的结构不同,需要将其中几个字段对应起来.可以用下面的触发器实现. 表A的触发器: begin set @disable=1; if @disable=1 and NOT EXISTS(SELECT 1 FROM tableB where ID=new.ID) then   insert into tableB (ID,对应字段1) values(new.ID,new.对应字

sql-如何将数据库表的两张表进行合并查询

问题描述 如何将数据库表的两张表进行合并查询 有两张表,数据列均不一样,要将两张表的数据合并到一起,想应的sql怎么拼接呢?求大神解答,不胜感激! 解决方案 你想怎么合并? 如果是按照关系合并,可以这么写 select a.*, b.* from a join b on a.id = b.aid 如果是数据合并(假设两个表都有 相同列1 相同列2 两个字段),那么可以这样 select a.相同列1, a.相同列2 from a union select b.相同列1, b.相同列2 from