筆記摘錄:
SQLSERVER中,是支持insert into命令插入多條記錄的:
insert into pm_stu values (3,'王五')(4,'趙六');
ORACLE中川背,上面是錯誤的领虹,oracle貌似不支持一個insert插入多行記錄规哪,只能改寫成一個insert插入一條記錄:
insert into pm_stu values (3,'王五');
insert into pm_stu values (4,'趙六');
或者另一種方法:
insert into pm_stu
select 3,'王五' from dual
union all
select 4,'趙六' from dual
這兩種方法的區(qū)別?是效率不同
insert into 表名 (字段a,字段b)
select '值a1','值b1' from dual
union
select '值a2','值b2' from dual
那么這一次就插入了兩條數(shù)據塌衰。當然诉稍,如果全字段插入 那個(字段a,字段b)還可以省略掉。
好處是:避免了寫復雜而又沒必要寫的存儲過程,避免了執(zhí)行多個SQL語句多次連接數(shù)據庫的開銷最疆。
最后的實踐證明杯巨,如果循環(huán)60萬次Insert,一個小時也執(zhí)行不完(當然有可能是機器太爛)努酸,而拼成1000條Select再插入一次服爷,插入60萬條的時間是20分鐘,而拼成5000條Select再Insert一次,插入60萬條數(shù)據的時間是12分鐘仍源。