使用Autoincrement将Pandas Dataframe插入MySQL表以自动生成主键

时间:2016-08-17 11:09:42

标签: python mysql

我有一个Pandas数据框,我正在尝试使用MySQLdb和to_sql插入MySQL表。该表具有'allocationid'作为主键和自动增量..我将每天执行此操作,从MySQL表中删除当天的先前数据并重新插入来自Pandas数据帧的更新数据。因此想要自动增量的主键(我不会在线上使用它,但可能想要引用它)。

代码是......

columns = ('date','tradeid','accountid','amount')
splitInput = pd.DataFrame(columns = columns)

splitInput['accountid'] = newHFfile['acctID']
splitInput['tradeid'] = newHFfile['Ref']
splitInput['amount'] = newHFfile['AMOUNT1']
splitInput['date'] = newHFfile['Trade Date']


db = MySQLdb.connect(host="(hostIP)", port=3306, user="user", passwd="(passwd)", db="(database)")

cursor = db.cursor()


query = """delete from  splittrades  where date = """ + runymdformat + """ """


cursor.execute(query)


db.commit()                            


splitInput.to_sql(con = db, name = 'splittrades',if_exists = 'append',flavor = 'mysql',index = False)

db.commit()   

db.close() 

问题在于,如果没有为主键添加列,我会得到'OperationalError:(1364,“字段'allocationid'没有默认值”)'

如果我添加一个主键列并将其留空,则为null,我得到OperationalError:(1366,“不正确的整数值:''用于第1行的'allocationid'列”) 如果我在allocationid列中使用1或0,则会得到重复值错误消息。

如果你没有指定主键,MySQL通常会自动递增主键 - 有没有办法让我能用Python工作?

PS不是Python专家,所以请轻轻地对待我 - 谢谢: - )

0 个答案:

没有答案