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

2024-10-02 00:23:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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专家,所以请温柔地对待我-谢谢:-)


Tags: columnsto数据pandasdbsqldatemysql

热门问题