用一个查询插入多行[重复]
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中的多行插入查询(从一张表中选择多行并插入到另一张表中[重复]