我有一个包含这样的列的数据库
Col1 Col2 Col3 Col4 Col5
我有两个csv文件,其中包含这样的数据
File-1
Column1, Column2, Column4, Column5
1,2,4,5
1,2,4,5
1,2,4,5
1,2,4,5
1,2,4,5
File-2
Column1, Column3, Column5
1,3,5
1,3,5
1,3,5
1,3,5
1,3,5
1,3,5
请告诉我使用infile命令加载数据以在表中的各列中加载file1和file2数据。即,从file1开始,.csv中的column4应该进入表格的COl4。
使用此命令,Column4进入Col3,Column5进入Col4。
import MySQLdb
import os
import string
import warnings
print "File Loader Started : QT"
output_path="F:/TestData_SD/QT_Files/"
# Open database connection
db = MySQLdb.connect (host="localhost",port=3307,user="root",\
passwd="gamma123",db="db_schema")
sql = """LOAD DATA LOCAL INFILE '{}'
INTO TABLE struct_pqrst
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\\r\\n'
IGNORE 1 LINES;;"""
l = os.listdir(output_path)
for file_name in l:
if file_name.endswith('.csv'):
try:
cursor = db.cursor()
cursor.execute(sql.format(output_path+file_name))
db.commit()
print "Loading file:"+file_name
except Exception:
print "Exception"
# Rollback in case there is any error
db.rollback()
# disconnect from server
db.close()
print "File Loader Ended : QT"
请帮助
答案 0 :(得分:0)
在第二个文件中,您可以定义列。
LOAD DATA LOCAL INFILE '{}'
INTO TABLE struct_pqrst (Column1, Column3, Column5)
FIELDS TERMINTED BY ','
LINES TERMINATED BY '\r\n' IGNORE 1 LINES;
查看我发布的链接。
参考:How to insert selected columns from a CSV file to a MySQL database using LOAD DATA INFILE