SQL批量刪除與批量插入

2021-09-06 02:38:39 字數 1023 閱讀 8343

批量刪除:

delete from mytable where id in (1,2);

批量插入:

insert into mytable(id,name) values(1,'123');

insert into mytable(id,name) values(2,'456');

insert into mytable(id,name) values(3,'789');

第二種方法,使用union all來進行插入操作:   

insert into mytable(id,name)

select 4,'000'

union all

select 5,'001'

union all

select 6,'002' ;

據說要比第一種要快!

第三種方法 

insert into mytable(id,name) values(7,'003'),(8,'004'),(9,'005');

example:

表: leafjob(

leafnum int not null primary key,

machine varchar(15) );

刪除:delete from leafjob where leafnum in (1,2,4);

插入:insert into leafjob (leafnum, machine) values(1, 'r1leaf3'), (2, 'r1leaf22');

insert into leafjob(leafnum, machine) select 4,'000' union all select 1,'r1leaf3' union all select 2,'r1leaf22';

insert into leafjob(leafnum, machine) select 1,'r1leaf3' union select 2,'r1leaf22';

注:效能問題需要具體測試。示例在mysql下測試過,version: 4.1.20

批量插入SQL

sql語句是有長度限制,在進行資料合併在同一sql中務必不能超過sql長度限制,通過max allowed packet配置可以修改,預設是1m,測試時修改為8m。事務需要控制大小,事務太大可能會影響執行的效率。mysql有 innodb log buffer size 配置項,超過這個值會把inn...

sql批量插入

批量插入 第一種 insert into mytable id,name values 1,123 insert into mytable id,name values 2,456 insert into mytable id,name values 3,789 第二種方法,使用union all來...

SQL 批量插入和批量更新

最新總是有人問我sql優化的問題,大部分的原因就是更新實體集合或者更新,因為用的是持久化的框架,例如hibernate,entityfrmwork,所有這裡我總結一下如何在資料庫中利用sql進行批量的插入或者更新 如果兩張表的結構一樣,例如乙個表的結構和另乙個表的結構一樣,只是其中一張是臨時表,而另...