Oracle SQL中的多行插入

时间:2012-06-03 08:21:14

标签: sql oracle oracle11g

我在oracle SQL中使用多行插入语法,如下所示:

INSERT ALL
  INTO student(ID, FIRST_NAME, LAST_NAME, AGE)  VALUES(4,'test_name','test_lname',17)
  INTO student(ID, FIRST_NAME, LAST_NAME, AGE)  VALUES(5,'test_name2','test_lname2',20)
  INTO student(ID, FIRST_NAME, LAST_NAME, AGE)  VALUES(6,'test_name3','test_lname3',21)
  select * from dual;

任何人都可以解释一下使用

的含义
  

从双

中选择*

at the statement?

3 个答案:

答案 0 :(得分:6)

它是INSERT ALL

的语法
INSERT ALL
INTO <table_name> VALUES <column_name_list)
INTO <table_name> VALUES <column_name_list)
...
<SELECT Statement>;

如果您在插入后没有想要选择的内容,请执行select * from dual

否则你做你想要的选择通常确认插入成功

reference

答案 1 :(得分:4)

  

DUAL表是默认存在的特殊单行表   Oracle数据库安装。它适用于选择a   伪列,例如SYSDATE或USER。桌上有一张   VARCHAR2(1)名为DUMMY的列,其值为“X”。

有关此herehere的更多信息。

答案 2 :(得分:0)

insert all可用于将select语句中的数据插入另一个表 在您的示例中,您已经提供了要插入的值,这就是您需要执行select * from dual,以触发插入的原因。

http://jzab.blogspot.com/2013/05/oracle-insert-multiple-rows-with-single.html