批量更新、刪除或插入數據
更新時間 2023-12-17 21:26:41
最近更新時間: 2023-12-17 21:26:41
分享文章
本文介紹如何批量更新、刪除或插入數據。
批量更新
- 常用的批量更新為 update …… set …… from(values()) as ……,將values的值構成虛表,統一更新。
update table1 set col2=tmp.col2 from (values (XXX,'XXX'),(XXX,'XXX'),(XXX,'XXX')) as tmp (col1,col2) where test.col1=tmp.col1;
批量刪除
- 使用truncate,直接將表所有數據行截斷,無法進行回滾。
truncate table_name; - drop,也是直接將表全部刪除,不可回滾。不同在于,drop會將整個表數據與表結構全部刪除,truncate會保留表結構,即表可以繼續使用。
drop table_name;
批量插入
- 使用 insert into ... select的方法,對數據源限制較多。
insert into table1(col1, col2) select col1 , col2 from table2; - 使用insert into … values (), () … ,SQL編寫麻煩,數據量多時,較難檢查其正確性。
insert into table_name(col1, col2) values (XXX, 'XXX'), (XXX, 'XXX');
使用三方工具或者編程語言實現批量處理(推薦)
使用SQL編寫批量數據處理其實較為繁瑣,原因是SQL語句較為冗余,也不便于檢查錯誤。因而生產中最為常用的方式,是使用其他編程語言的數據庫驅動,利用該語言的開發便利性,批量導入數據,例如java語言連接數據庫使用的jdbc,搭配上合適的函數框架,可以很輕松實現批量操作數據。