用一个查询插入多行[重复]

Posted

技术标签:

【中文标题】用一个查询插入多行[重复]【英文标题】: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 中不起作用,就像我上面提到的代码一样,你需要每次都添加联合 【参考方案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 如果我们想将数据插入几列而不是所有列怎么办?它不起作用如何在没有联合的情况下进行插入

以上是关于用一个查询插入多行[重复]的主要内容,如果未能解决你的问题,请参考以下文章

插入多行查询失败[重复]

Oracle中的多行插入查询(从一张表中选择多行并插入到另一张表中[重复]

插入多行时重复项会发生什么?

插入多行时重复会发生啥?

如何在oracle 11g中使用一个INSERT语句在一列中插入多行[重复]

试图在我的 SQL 表中插入多行。总是显示 SQL 命令未正确结束 [重复]