2012-08-31 82 views
0

如何創建使用SQL語法,而不調用mysqldump工具的表的BULK INSERT語句批量插入轉儲文件?使用SQL創建在MySQL

請記住,SELECT ... INTO OUTFILE 'file_name'不會爲我工作,因爲它在BULK INSERT SQL生成CSV文件,而不是輸出格式如下

INSERT INTO mytable VALUES (1,2), (5,5), ...; 
+0

批量插入?你從哪裏得到你的數據?從另一張桌子?或者你想將它保存到文件? – Gustonez

+0

我從表中獲取它,並且想要將它作爲批量插入語句保存在文件中。 – davykiash

回答

0

運行

SELECT * FROM mytable INTO OUTFILE 'dump.csv' 
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'; 

和然後用sed/perl/python/shell/whateverelse處理輸出CSV以獲得SQL腳本。

例如在python:

import csv 
with open('dump.csv',"rU") as inf: 
    reader = csv.reader(inf) 
    with open("dump.sql","wb") as outf: 
     for row in reader: 
      outf.write('insert into mytable values ("'+ '","'.join(row) +'");\n') 

的腳本不工作在列中的值圍繞Null S和引號字符。

+0

您能否以您喜歡的任何編程語言提供示例代碼,並將其轉換。 – davykiash

+0

@davykiash檢查更新的答案 –