我有一个Pandas数据帧,我正试图使用MySQLdb和to-sql将其插入到MySQL表中。该表的主键为'allocationid',并且为autoincrement。。我希望每天都这样做,从MySQL表中删除一天之前的数据,并从Pandas dataframe中重新插入更新的数据。因此希望主键自动递增(我不会在下面使用它,但可能需要引用它)。在
代码是。。。在
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'没有默认值”)'
如果我添加一个主键列并将其留空,则会得到operational error:(1366,“第1行的列”“allocationid”“的整数值不正确:”“”) 如果在allocationid列中使用1或0,则会得到一个重复值error msg。在
如果不指定主键,MySQL通常会自动递增主键—有没有办法让我从Python中实现这一点?在
PS不是Python专家,所以请温柔地对待我-谢谢:-)
目前没有回答
相关问题 更多 >
编程相关推荐