怎么写多个字段的条件插入语句??

rateng 2003-01-26 09:34:01
想在oracle 写一个字段值从另一条件sql取来的值插入眸个表的多个字段上.

想这样我会写:
insert into table( Pk_id,field1,field2,field3)
values (seq_Pk_id.Nextval,field1 in (select fieldx from table2 where...)
field2 in (sql.....),
field3 in (sql.....))

我想把多个条件差训sql合起来一起对多个字段有效,怎么写这样的语句了??
...全文
110 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
beckhambobo 2003-01-27
  • 打赏
  • 举报
回复
insert into table1( Pk_id,field1,field2,field3) (select seq_Pk_id.Nextval,name1,name2,name3 from table2 where...)
rateng 2003-01-27
  • 打赏
  • 举报
回复
table1结构 ( id, name1 ,name2_fkid ,name3_fkid)
table2结构 (id, name1,name2,name3 );
table3结构 (id,name3);

id 做了个seq序号的,

其中name2 ,name3是外键,需要根据这两个的值来插入新的id,和name1记录.

Lastdrop 2003-01-27
  • 打赏
  • 举报
回复
直接把你的需求说出来吧,表表结构和你的条件介绍一下。
rateng 2003-01-27
  • 打赏
  • 举报
回复
没有多表的问题.,我就一个表.

insert into table( Pk_id,field1,field2,field3)
( SELECT seq_Pk_id.Nextval, fieldx from table2 where...)
想用这框架句来做的,但不懂后边的怎么做.
benxie 2003-01-27
  • 打赏
  • 举报
回复
對呀。說清楚一點。
beckhambobo 2003-01-27
  • 打赏
  • 举报
回复
把你的sql语名贴出来,看是否涉及多表问题
rateng 2003-01-27
  • 打赏
  • 举报
回复
能不能把sql语句写详细点.我按照上边的指点写了些sql,没有成功.
不知怎么写完那些语句.? 请写几个能运行的例子好吗?
Lastdrop 2003-01-27
  • 打赏
  • 举报
回复
是不是这样:
insert into table1(id, name1, name2_fkid, name3_fkid)
( select seq_Pk_id.Nextval, table2.name1, table2.id, table3.id
from table2, table3
where table2.name3 = table3.name3 )
Lastdrop 2003-01-26
  • 打赏
  • 举报
回复
利用子查询
insert into table( Pk_id,field1,field2,field3)
( SELECT seq_Pk_id.Nextval, fieldx from table2 where...)
其他的SQL也可以这样加进来,不过这些SQL产生的值间应该有一一对应关系
beckhambobo 2003-01-26
  • 打赏
  • 举报
回复
每一次只能插入一条记录值,那现在这样查询一次有多值,一定会报错。

用过程可以实现:
declare
cursor tab2_sor is
select fieldx from table2 where...;
begin
for v_sor in tab2_sor loop
insert into table( Pk_id,field1,field2,field3)
values (seq_Pk_id.Nextval,v_sor.fieldx,....);
end loop;
end;
/
由于以下没能确定值,具体到语句上:
field2 in (sql.....),
field3 in (sql.....))

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧