用insert all實現同時向多表插入資料
看到一個很有意思的問題如下:
有三個表,表A , 表B, 表C。這3個表,都有4個欄位,並且這4個欄位名稱都一樣,
分別是:ID NAME CODE
MESSAGE。
我現在要做以下操作:
每一個表都同時插入5條資料。其中這5條資料當中,前兩列是一樣的,第三列的資料是1--5,而最後一列的值是固定的。
例如:
表A: ID NAME CODE MESSAGE
0001 xiaoming 1 140
0001 xiaoming 2
112
0001 xiaoming 3 84
0001 xiaoming 4 56
0001 xiaoming 5 28
表B:
ID NAME CODE MESSAGE
0001 xiaoming 1 55
0001 xiaoming 2 33
0001
xiaoming 3 57
0001 xiaoming 4 67
0001 xiaoming 5 45
表C: ID NAME
CODE MESSAGE
0001 xiaoming 1 1000
0001 xiaoming 2 897
0001 xiaoming 3
233
0001 xiaoming 4 777
0001 xiaoming 5 1278
提問者自己覺見著寫15條insert太沒技術含量(呵呵,怎麼叫有技術含量呢),希望看到其它的不同寫法。就其需求而言我覺著insert語句應該是最簡單最高效的寫法,不過發貼者提出的問題倒是讓我想起了oracle自9i開始提供了insert
all語法,藉助該語法實現如下:
SQL> create table tba
(id
varchar2(10),name
varchar2(10),code
number,message number);Table
created
SQL> create table tbb
(id
varchar2(10),name
varchar2(10),code
number,message number);Table
created
SQL> create table tbc
(id
varchar2(10),name
varchar2(10),code
number,message number);Table
created
SQL> SQL>
insert all
2 into tba values
(id,name,code,messagea)3
into tbb values
(id,name,code,messageb)4
into tbc values
(id,name,code,messagec)5
select '0001' id,'xiaoming'
name,1 code,140
messagea, 55 messageb,1000
messagec from dual
6 union all
7 select '0001'
,'xiaoming' ,2
,112 , 33
,897 from dual
8 union all
9 select
'0001' ,'xiaoming'
,3 ,84 ,
57 ,233 from dual
10 union all
11
select '0001' ,'xiaoming'
,4 ,56 ,
67 ,777 from dual
12 union all
13
select '0001' ,'xiaoming'
,5 ,28 ,
45 ,1278 from dual
14
/15 rows inserted
SQL>
select * from
tba;ID NAME CODE MESSAGE----------
---------- ---------- ----------0001 xiaoming 1 140
0001
xiaoming 2 112
0001 xiaoming 3 84
0001 xiaoming 4 56
0001 xiaoming 5
28
SQL> select *
from tbb;ID NAME CODE
MESSAGE---------- ---------- ---------- ----------0001
xiaoming 1 55
0001 xiaoming 2 33
0001 xiaoming 3 57
0001 xiaoming 4
67
0001 xiaoming 5 45
SQL> select
* from tbc;ID NAME CODE
MESSAGE---------- ---------- ---------- ----------0001
xiaoming 1 1000
0001 xiaoming 2 897
0001 xiaoming 3 233
0001 xiaoming 4
777
0001 xiaoming 5 1278
功能實現。
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18921899/viewspace-1016710/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle insert all多表插入的示例Oracle
- Oracle批量插入資料insert all into用法Oracle
- 【SQL】 Multi table insert 多表插入操作SQL
- 【INSERT】在INSERT插入語句中引入條件限制選項實現資料插入控制
- Oracle 使用一條insert語句完成多表插入Oracle
- 【SQL】使用一條INSERT語句完成多表插入SQL
- mysql 同時插入幾行不同的資料 。MySql
- Oracle insert all一次插入多個表中Oracle
- mysql資料庫多表同結構合併資料MySql資料庫
- oracle多表插入Oracle
- MySQL 如何實現資料插入MySql
- 利用oracle job定時向某個表插入資料Oracle
- oracle-資料庫- insert 插入語句Oracle資料庫
- ColdFusion向資料庫插入資料例子資料庫
- [資料庫] Navicat for MySQL換種思維解決插入同時更新資料資料庫MySql
- kettle 實時同步資料(插入/更新/刪除資料)
- Oracle中的insert/insert all/insert firstOracle
- 實驗:用檢視加同義詞實現資料安全
- Oracle 的 INSERT ALL和INSERT FIRSTOracle
- 表number列的資料插入insert小測試
- Oracle多表插入語句Oracle
- INSERT ALL 和INSERT FIRST 的區別
- 向表中插入大批量資料
- 使用 Python 字典向 SQLite 插入資料PythonSQLite
- oracle insert插入number(1)列的資料小測試Oracle
- 深入SQL之 insert allSQL
- mybatis怎麼實現insert into多個資料-oracle資料庫MyBatisOracle資料庫
- 怎麼快速插入 100 條資料,用時最短!
- 用JavaScript實現插入排序JavaScript排序
- Oracle的多表插入語句Oracle
- laravel實現100w大量資料插入資料庫Laravel資料庫
- 同時支援真實資料與 mock 資料的 httpmock 工具MockHTTP
- [Q]怎麼實現一條記錄根據條件多表插入 zt
- 「python」向DataFrame資料格式中插入行Python
- PostgreSQL 原始碼解讀(4)- 插入資料#3(heap_insert)SQL原始碼
- Service實時向Activity傳遞資料案例
- 在ThinkPHP5框架下引入Ueditor並實現向七牛雲物件儲存上傳圖片同時將圖片資訊儲存到MySQL資料庫,同時實現lazyload懶載入PHP框架物件MySql資料庫
- 雙向資料繫結實現原理