Oracle中同時插入多條記錄

2021-08-28 15:08:03 字數 1419 閱讀 4577

由於要做測試資料插oracle資料庫,想到了mysql的多個values的形式,但是sql報錯。oracle並不支援這種乙個insert into 多個values的方法

insert into users(name, age) values('ccc', 333), ('aaa', 222), ('bbb', 111);
但是有另一種寫法,做個簡單記錄,跟mysql中的乙個insert多個values的形式差不多。

insert all into tb_red values(1000, 8001, '2016-10-10 10:59:59', 1, 8001, '測試使用者1000', '紅名單0', '男', '膜法學院', '被測')into tb_red values (1001, 8001, '2016-10-10 11:00:00', 2, 8001, '測試使用者1001', '紅名單1', '男', '膜法學院', '被測')into tb_red values (1002, 8001, '2016-10-10 11:00:01', 0, 8001, '測試使用者1002', '紅名單2', '男', '膜法學院', '被測')into tb_red values (1003, 8001, '2016-10-11 10:59:59', 1, 8001, '測試使用者1003', '紅名單3', '男', '膜法學院', '被測')into tb_red values (1004, 8001, '2016-10-11 11:00:00', 2, 8001, '測試使用者1004', '紅名單4', '男', '膜法學院', '被測')

into tb_red values (1005, 8001, '2016-10-11 11:00:01', 0, 8001, '測試使用者1005', '紅名單5', '男', '膜法學院', '被測')

select 1 from dual;

結果:

說明:1.第一句用的是insert all into 不是 insert into

2.最後跟的selecr 1 from dual語句中的dual表可以被替換為任何乙個只要不是tb_red的表

3.和mysql的寫法不一樣,多個values之間不用逗號分隔,但是需要加into tablename的形式的語句在每個values前面

4.只適合於oralce 9i以上版本

另外一種方法是:迴圈into語句,用分號;隔開,在sql首尾分別加上begin,end;。目的是為了減少資料庫連線,選擇一次提交大量sql。

insert觸發器 同時插入多條記錄

需求 寫了乙個for insert的觸發器,每次插入資料的時候向相關的資料表中也同時插入資料。問題 測試的時候,一次只向主表中插入一條記錄,那麼觸發器沒有問題。在實際使用的時候,因為使用了insert into select語句,一次向主表中插入了超過一條的記錄,如17條,但是發現其他資料表中卻都只...

使用Oracle插入語法來插入多條記錄

使用oracle插入語法來插入多條記錄 techtarget中國原創 問 怎樣才能在oracle中只用乙個insert來插入多條記錄?除了寫五條insert來插入五條記錄到乙個表,我更傾向於用一條單獨的語句來執行插入。答 根據psoug.org上的資訊,一條insert語句可以新增一條或多條記錄到乙...

使用Oracle插入語法來插入多條記錄

問 怎樣才能在oracle中只用乙個insert來插入多條記錄?除了寫五條insert來插入五條記錄到乙個表,我更傾向於用一條單獨的語句來執行插入。答 根據psoug.org上的資訊,一條insert語句可以新增一條或多條記錄到乙個關係型資料庫的任意乙個表中。為了讓使用者插入記錄到乙個表,此表必須是...