MySQL批量導(dǎo)入數(shù)據(jù)的實現(xiàn)
MySQL批量導(dǎo)入數(shù)據(jù)操作應(yīng)該如何實現(xiàn)呢?這是很多人都提到過的問題,下面就為您介紹MySQL批量導(dǎo)入數(shù)據(jù)的實現(xiàn)方法,供您參考。
不管是在網(wǎng)站開發(fā)還是在應(yīng)用程序開發(fā)中,我們經(jīng)常會碰到需要將MySQL或MS SQLServer某個表的數(shù)據(jù)批量導(dǎo)入到另一個表的情況,甚至有時還需要指定導(dǎo)入字段。
下面就將以MySQL數(shù)據(jù)庫為例,介紹如何通過SQL命令行將某個表的所有數(shù)據(jù)或指定字段的數(shù)據(jù),導(dǎo)入到目標表 中。此方法對于SQLServer數(shù)據(jù)庫,也就是T-SQL來說,同樣適用 。
類別一、 如果兩張張表(導(dǎo)出表和目標表)的字段一致,并且希望插入全部數(shù)據(jù),可以用這種方法:(此方法只適合導(dǎo)出兩表在同一database)
INSERT INTO
目標表
SELECT * FROM
來源表
;
例如,要將 articles 表插入到 newArticles 表中,則可以通過如下SQL語句實現(xiàn):
INSERT INTO
newArticles
SELECT * FROM
articles
;
類別二、 如果只希望導(dǎo)入指定字段,可以用這種方法:
INSERT INTO
目標表 (字段1, 字段2, ...)
SELECT
字段1, 字段2, ...
FROM
來源表
;
請注意以上兩表的字段必須一致(字段類型),否則會出現(xiàn)數(shù)據(jù)轉(zhuǎn)換錯誤。
1、跨服務(wù)器復(fù)制表中數(shù)據(jù)
- insert into openrowset('sqloledb','localhost';'sa';'123',Test.dbo.Table_B)
- select * from Test.dbo.Table_A
- //啟用Ad Hoc Distributed Queries:
- exec sp_configure 'show advanced options',1
- reconfigure
- exec sp_configure 'Ad Hoc Distributed Queries',1
- reconfigure
- //使用完成后,關(guān)閉Ad Hoc Distributed Queries:
- exec sp_configure 'Ad Hoc Distributed Queries',0
- reconfigure
- exec sp_configure 'show advanced options',0
- reconfigure
2、
- //不跨服務(wù)器
- insert into dbo.Table_B) select * from dbo.Table_A
將表名和數(shù)據(jù)庫連接字符串用代碼拼接好 然后執(zhí)行上述您需要的sql語句 程序功能即可完成。
【編輯推薦】