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

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合起来一起对多个字段有效,怎么写这样的语句了??
...全文
118 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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,382

社区成员

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

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