insert all (復合表插入),是將一個查詢結果同時插入多個表中的功能。使用insert all的好處是通過讀取一次源表就可以插入多張目標表,減少重復讀取的開銷。
創新互聯專注于洮南網站建設服務及定制,我們擁有豐富的企業做網站經驗。 熱誠為您提供洮南營銷型網站建設,洮南網站制作、洮南網頁設計、洮南網站官網定制、微信小程序服務,打造洮南網絡公司原創品牌,更為您提供洮南網站排名全網營銷落地服務。語法:
INSERT [ALL] [conditional_insert_clause]
[insert_into_clause value_clause] (subquery);
conditional_insert_clause is:
[ALL] [FIRST]
[WHEN condition THEN] [insert_into_clause value_clause]
[ELSE] [insert_into_clause value_clause]
all:不考慮先后關系,只要滿足條件,就全部插入;
first:考慮先后關系,如果有數據滿足第一個when條件又滿足第二個when條件,則執行第一個then插入語句,第二個then就不插入第一個then已經插入過的數據了。
其區別也可描述為,all只要滿足條件,可能會作重復插入;first首先要滿足條件,然后篩選,不做重復插入
示例:
insert all when c1<1000 then into samall_orders values (oid,c1,sid,cid) when c1 <2000 then into medium_orders values (oid,c1,sid,cid) when c1>2000 and c1 <2900 then into large_orders vlaues (oid,c1,sid,cid) else into special_orders select oid,c1,sid,cid from orders;指定insert first 當第一個when條件成立時,執行該when條件后的語句,并且跳過后面的 WHEN 子句(后面的when語句都不再考慮滿足第一個When子句的記錄,即使該記錄滿足when語句中的條件)。
insert first when c1<1000 then into samall_orders values (oid,c1,sid,cid) when c1 <2000 then into medium_orders values (oid,c1,sid,cid) when c1>2000 and c1 <2900 then into large_orders vlaues (oid,c1,sid,cid) else into special_orders select oid,c1,sid,cid from orders;上面兩條語句區別在第二個when條件,insert all 中 第二個條件會插入orders 表中c1<2000的記錄,insert first 中第二個when條件會插入orders表中1000<c1<2000的記錄,insert first中插入第二個when子句中的表時排除了第一個when條件的記錄,
另外有需要云服務器可以了解下創新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
分享名稱:oracleinsertall復合表插入-創新互聯
新聞來源:http://vcdvsql.cn/article48/dsdeep.html
成都網站建設公司_創新互聯,為您提供手機網站建設、用戶體驗、搜索引擎優化、自適應網站、品牌網站設計、移動網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯