【问题标题】:Inserting multiple rows with one single query [duplicate]用一个查询插入多行[重复]
【发布时间】:2017-01-15 08:23:00
【问题描述】:

我能够通过以下查询插入两行。我应该怎么做才能在其中插入更多行?

insert into friend_name(
     friend_id, 
     first_name, 
     middle_name, 
     last_name)
select  
     3,
     'rich',
     'mond',
     'hill' 
from dual
union all
select 
     4,
     'monunica',
     'bellu',
     'cia' 
from dual

【问题讨论】:

  • 添加另一个union all
  • 谢谢有没有其他方法可以更有效地做到这一点
  • @kiranavula 如果您对要插入的所有值进行硬编码,则不是这样。如果您有另一个表中已经存在的实际数据,那么做起来非常简单
  • Oracle 是否允许insert into t (c1,c2) values (v1,v2), (v3,v4),... 格式的倍数?这至少会排除select ... from dual; 的要求。
  • @SlimsGhost 它在 oracle 中不起作用,就像我上面提到的代码一样,你需要每次都添加联合

标签: sql oracle sql-insert


【解决方案1】:

你也可以试试这个:

insert all
    into demo_table values (1, 'One', 'X' )
    into demo_table values (2, 'Two', 'Y' )
    into demo_table values (3, 'Three', 'Z' )
select * from dual;

@kiranavula..如果您只需要在表的几列中插入记录,然后在下面使用:

只在表格的 1 列中插入记录。

insert all
    into demo_table(a) values ('One')
    into demo_table(a) values ('Two')
    into demo_table(a) values ('Three')
select * from dual;

【讨论】:

  • 哇。我从来没有见过insert all 那样用过——太棒了!
  • @SlimsGhost 这是oracle的方法
  • @XING 你能解释一下带有dual的select语句吗
  • @kiranavula..你有什么疑问...!!!这是我们可以使用插入语句的一种方式。
  • @XING 如果我们想将数据插入几列而不是所有列怎么办?它不起作用如何在没有联合的情况下进行插入
猜你喜欢
  • 2013-04-29
  • 2011-12-29
  • 2020-01-08
  • 1970-01-01
  • 2017-07-13
  • 2019-02-03
  • 2017-03-19
  • 1970-01-01
相关资源
最近更新 更多