表的插入、更新、删除、合并操作_4_同时往多个表插入记录
生活随笔
收集整理的這篇文章主要介紹了
表的插入、更新、删除、合并操作_4_同时往多个表插入记录
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
? ? ? ? ? ? ? ? ? ? ? ? ? 同時往多個表插入記錄
需求描述
需求:從dept表里插入數(shù)據(jù)到3張表,當loc是NEW YORK和BOSTON時向dept_east表中插入,當當loc是CHICAGO時向dept_mid表中插入,其它情況往dept_west表中插入.
解決方法:這里通過INSERT ALL WHEN Condition THEN INTO TABLENAME VALUES (…)的方式.
?
SQL代碼
-- Oracle:CREATE TABLE dept_east (DEPTNO NUMBER(2), DNAME VARCHAR2(14), LOC VARCHAR2(13) );CREATE TABLE dept_mid (DEPTNO NUMBER(2), DNAME VARCHAR2(14), LOC VARCHAR2(13) );CREATE TABLE dept_west (DEPTNO NUMBER(2), DNAME VARCHAR2(14), LOC VARCHAR2(13) );INSERT ALL WHEN loc IN ('NEW YORK','BOSTON') THEN INTO dept_east(deptno,dname,loc) VALUES(deptno,dname,loc) WHEN loc IN ('CHICAGO') THEN INTO dept_mid(deptno,dname,loc) VALUES(deptno,dname,loc) ELSE INTO dept_west(deptno,dname,loc) VALUES(deptno,dname,loc) SELECT? deptno,dname,loc FROM dept-- 我們可以通過如下的SQL,清晰的看到分散到3個表的數(shù)據(jù): SELECT A.*,'dept_east' AS TableSource FROM dept_east A UNION ALL SELECT A.*,'dept_mid' AS TableSource FROM dept_mid A UNION ALL SELECT A.*,'dept_west' AS TableSource FROM dept_west A;執(zhí)行結(jié)果?
注: 截止目前,僅oracle支持該語法.
?
總結(jié)
以上是生活随笔為你收集整理的表的插入、更新、删除、合并操作_4_同时往多个表插入记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 表的插入、更新、删除、合并操作_3_插入
- 下一篇: 坦克制造史上多个第一的T-64主战坦克