2016-04-12 11 views
1

Bir CSV'den MySQL tablosuna 5 sütun veri aktarmaya çalışıyorum. MySQL'in ilk sütunu autoincrement, CSV'nin ilk sütunu boş. Aşağıdaki kod bir hata üretir. ProgrammingError:import CSV to MySQL hatası

import csv 
import MySQLdb 

database = MySQLdb.connect(host='10.200.10.125', user='spaine', passwd='spaine', db='scat') 
cursor = database.cursor() 


cursor.execute('show tables') 
for row in cursor: 
    print row 

cursor.execute('describe brewpubs') 
print "\n info about table brewpubs" 

for row in cursor: 
    print row 

csv_file = 'E:\\Proving Grounds\\MsSQL Connection\\Brewery Data\\Breweries.csv' 
csv_data = csv.reader(file(csv_file)) 


for row in csv_data: 
    print row 
    cursor.execute('''INSERT INTO brewpubs (PID, name, londd, latdd, desc) VALUES(%s, %s, %s, %s, %s)''', row) 


database.commit() # Make sure data is committed to the database 

database.close() 

Bu kod aşağıdaki hata üretir (1064, "Kendi SQL sözdizimi bir hata var; yakın 'azalan kullanma hakkı sözdizimi için MySQL sunucu sürümü ile uyumlu kılavuzu) DEĞERLER ('', 'Hoppy Bira', '-121,429684', '38 0,554962' , 'http://www.hoppy.' hattı 1" de)

+0

'dosya (csv_file)' yi gördünüz mü? –

cevap

3

desc mySQL bir reserved word, sen ters tırnakların (`) için tarafından içine alın zorunda Bir tanımlayıcı olarak kullanın:

+0

Bu hile yaptı! Teşekkür ederim. – spaine

0

I f sütunu otomatik artış, her zaman boş olduğundan tamamen ekten çıkarır.

+0

İlk sütunundan beri bunu nasıl çıkarırsınız? – spaine

+0

Lütfen bu kılavuzu okuyun [CSV Dosyasını Mysql'ye Aktar] (http://www.twotutorial.com/2016/03/how-to-import-csv-file-in-mysql-using.html). Umarım bu size yardımcı olur. – NomanJaved