web開發中,我們經常需要將乙個表的資料插入到另外乙個表,有時還需要指定匯入字段,設定只需要匯入目標表中不存在的記錄,雖然這些都可以在程式中拆分成簡單sql來實現,但是用乙個sql的話,會節省大量**。下面我以mysql資料庫為例分情況一一說明:
兩張表:inserttest和inserttest2,前者中有測試資料
create
table inserttest(id
int(4),
name
varchar(12));
insert
into inserttest
values(100,
'liudehua');
insert
into inserttest
values(101,
'zhourunfa');
insert
into inserttest
values(102,
'zhouhuajian');
1.如果2張表的字段一致,並且希望插入全部資料,可以用這種方法:
insert into 目標表 select * from **表;
insert
into inserttest
select *
from inserttest2;
2.如果只希望匯入指定字段,可以用這種方法:
insert into 目標表 (欄位1, 欄位2, ...) select 欄位1, 欄位2, ... from **表;
注意欄位的順序必須一致。
insert
into inserttest2(id)
select id
from inserttest2;
3.如果您需要只匯入目標表中不存在的記錄,可以使用這種方法:
insert into 目標表
(欄位1, 欄位2, ...)
select 欄位1, 欄位2, ...
from **表
where not exists (select * from 目標表
where 目標表.比較字段 = **表.比較字段);
1>.插入多條記錄:
insert
into inserttest2
(id,
name)
select id,
name
from inserttest
where
notexists (
select *
from inserttest2
where inserttest2.id=inserttest.id);
2>.插入一條記錄:
insert
into inserttest
(id,
name)
select 100,
'liudehua'
from dual
where
notexists (
select *
from inserttest
where inserttest.id = 100);
使用 dual 作表名,select 語句後面直接跟上要插入的字段的值。
**:
MySQL 資料庫怎樣把乙個表的資料插入到另乙個表
web開發中,我們經常需要將乙個表的資料插入到另外乙個表,有時還需要指定匯入字段,設定只需要匯入目標表中不存在的記錄,雖然這些都可以在程式中拆分成簡單sql來實現,但是用乙個sql的話,會節省大量 下面我以mysql資料庫為例分情況一一說明 兩張表 inserttest和inserttest2,前者...
MySQL 資料庫怎樣把乙個表的資料插入到另乙個表
web開發中,我們經常需要將乙個表的資料插入到另外乙個表,有時還需要指定匯入字段,設定只需要匯入目標表中不存在的記錄,雖然這些都可以在程式中拆分成簡單sql來實現,但是用乙個sql的話,會節省大量 下面我以mysql資料庫為例分情況一一說明 兩張表 inserttest和inserttest2,前者...
MySQL 資料庫怎樣把乙個表的資料插入到另乙個表
web開發中,我們經常需要將乙個表的資料插入到另外乙個表,有時還需要指定匯入字段,設定只需要匯入目標表中不存在的記錄,雖然這些都可以在程式中拆分成簡單sql來實現,但是用乙個sql的話,會節省大量 下面我以mysql資料庫為例分情況一一說明 兩張表 inserttest和inserttest2,前者...