Oracle怎么同时插⼊多条数据?
SQL语句向表中插⼊多个值的话,如果如下语句
INSERT INTO 某表 VALUES(各个值),VALUES(各个值),.....;
这样会报错的,因为oracle是不⽀持这种写法的,如果多个INSERT INTO VALUEES(各个值);这样以“;”隔开⼀同执⾏也是不⾏的,oracle也是不⽀持的。
不过MySQL这两种⽅式都是⽀持的。在MySQL中还可以使⽤如下格式的插⼊语句:
⽰例:
insert into persons
(id_p, lastname , firstName, city )
values
(200,'haha' , 'deng' , 'shenzhen'),
values什么意思
(201,'haha2' , 'deng' , 'GD'),
(202,'haha3' , 'deng' , 'Beijing');
SQL Server也是不⽀持这两种写法的。
ORACLE 的⽅法:
"INSERT ALL INTO  a表
VALUES(各个值)
INTO a表 VALUES (其它值)
INTO a表 VALUES(其它值) .... 再跟⼀个SELECT 语句"。
SELECT 1 FROM DUAL
后边跟的SELECT 语句我们可以从虚拟表⾥查如 SELECT 1 FROM DUAL。注意后边跟的SELECT语句可以随意,不过不是把它SELECT 出来的内容插⼊前边的表⾥,⽽是起到前边的多个数据每次插⼊多少⾏的作⽤,这个多少⾏是和后边跟的SELECT语句查出来⼏条⽽定的,如后边的跟的SELECT 语句查出了15条记录,那么前边的"INSERT ALL INTO  a表 VALUES(各个值1)  INTO a表 VALUES (其它值
2) INTO a表 VALUES(其它值3)"就会先插⼊值1对应的各个字段插⼊15条记录,然后插⼊值2各个对应的字段15条记录,然后插⼊值3对应的各个字段15条记录,也就是说有点按列插⼊的意思。
我们要的是批量插⼊多个VALUES这样的⼀条记录,所以后边的SELECT 语句只要能查出⼀条记录就⾏,建议⼤家后边⽤SELECT 1 FROM DUAL。
INSERT ALL INTO 表名 VALUES('值1','值2'...) INTO 表名 VALUES('值1','值2'...) SELECT 1 FROM DUAL;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。