zoukankan      html  css  js  c++  java
  • 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'),
    (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;
  • 相关阅读:
    Ubuntu下多版本软件的管理
    关于高考
    Openca安装笔记
    Nginx+uwsgi+python配置
    cpabe的安装
    线形同余法求随机数
    world wind 之 applet 篇
    0909 海贼王我当定了
    实验0:了解和熟悉操作系统
    0316复利计算器3.0
  • 原文地址:https://www.cnblogs.com/wynlfd/p/14006899.html
Copyright © 2011-2022 走看看