我正在尝试将5列数据从CSV导入MySQL表。 MySQL的第一列是自动增量,CSV的第一列是空白的。以下代码会产生错误。
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()
此代码产生以下错误: ProgrammingError:(1064,“你的SQL语法有错误;请查看与你的MySQL服务器版本对应的手册,以便在'desc附近使用正确的语法)VALUES('','Hoppy Brewing',' - 121.429684', '38 .554962','http://www.hoppy。'在第1行“)
答案 0 :(得分:3)
desc是mysql中的reserved word,你必须用反引号(`)将它括起来用它作为标识符:
... (PID, name, londd, latdd, `desc`)
答案 1 :(得分:0)
如果列是自动增量,则完全从插入中省略它,因为它总是空白的。