Oracle 批量插入多條資料

2021-09-26 15:13:34 字數 1199 閱讀 3911

mysql中可以這樣:

insert

into test_table (id, name, age)

values(1

,'abc',23

),(2

,'kkk',33

);

以上語句不能在oracle資料庫執行。

oracle中可以這樣:

insert

allinto test_table (id, name, age)

values

('1'

,'ab',23

)into test_table (id, name, age)

values

('2'

,null,33

)select

1from dual;

這個select子句不可以省略,而且不能select空表,否則可能會語句成功執行但是資料並沒有插入。原因見下面——

這條語句實際上是把上面所有的insert into語句執行下面子查詢查詢結果的條數次。

也就是說,下面子查詢若查詢出1條結果,則所有資料插入1次;若子查詢若查詢出3條結果,則所有資料插入3次。

oracle這個語句通用性更廣一些,因為可以同時往不同表插入資料,且可以保證是乙個事務。

還可以這樣在建立表的同時,批量插入資料:

create

table test_table as

select

'abc' b,

'123' id from dual

union

allselect

'222'

,'222'

from dual

union

allselect

'222'

,'333'

from dual;

若想把查詢結果插入一張已經存在的表:

insert

into table_name_a

(col1, col2, col3)

select col4, col4, col5 from table_name_b

inner

join table_name_b on..

.where..

.

MySQL批量插入多條資料

mysql在插入大量資料 十萬級或者百萬級別 時效率會變得很差,所以需要採用以下方法來提高其插入效率。a 關閉自動提交,改為手動提交 connect.setautocommit false 插入資料完後最後再con.commit b 拆分資料,多執行緒入庫 c 一條插入語句插入多條資料 insert...

Oracle sql批量插入多條資料

在oracle裡面,不支援像mysql那樣直接在後面拼多個記錄。oracle中有兩個方法達到批量插入的效果 insert into pager pag id,pag parent,pag name,pag active select 8000,0,multi 8000 1 from dual uni...

Oracle中插入多條資料

1 oracle中 insert into product id,names,price,code select 100,a 1,1 from dual union select 101,b 2,2 from dual 這裡最好用一次insert,不然效率不高,用多個select.2 mysql中 ...