我正在为 MySQL 数据库管理器创建函数以将 excel 文件导入表中。
但问题出在备份系统中,我用一些数据复制现有表,复制有效,并且有新表(表名+当前时间和日期)。
然后程序尝试将excel文件推送到表格中,出现以下错误:
Traceback (most recent call last):
File "C:\Users\c1v\PycharmProjects\Python_Exel\PhoneExel\import_tester.py",line 7,in <module>
c.import_excel("import_test_1","C:\\Users\\c1v\\Desktop\\cats.xls")
File "C:\Users\c1v\PycharmProjects\Python_Exel\PhoneExel\db_manager.py",line 94,in import_excel
self.operator.executemany(q,l)
File "C:\Users\c1v\PycharmProjects\Python_Exel\kivy_venv\lib\site-packages\mysql\connector\cursor.py",line 654,in executemany
return self.execute(stmt)
File "C:\Users\c1v\PycharmProjects\Python_Exel\kivy_venv\lib\site-packages\mysql\connector\cursor.py",line 551,in execute
self._handle_result(self._connection.cmd_query(stmt))
File "C:\Users\c1v\PycharmProjects\Python_Exel\kivy_venv\lib\site-packages\mysql\connector\connection.py",line 490,in cmd_query
result = self._handle_result(self._send_cmd(ServerCmd.QUERY,query))
File "C:\Users\c1v\PycharmProjects\Python_Exel\kivy_venv\lib\site-packages\mysql\connector\connection.py",line 395,in _handle_result
raise errors.get_exception(packet)
mysql.connector.errors.IntegrityError: 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
代码:
def import_excel(self,table,file_loc):
print(f"Importing excel file into table: {table}...")
now = datetime.now()
dt_string = now.strftime("-%Y_%m_%d-%H_%M_%S")
table_name = table + dt_string
self.operator.execute(f"CREATE TABLE `{table_name}` LIKE `{table}`")
self.operator.execute(f"INSERT INTO `{table_name}` SELECT * FROM `{table}`")
l = list()
xlsx_file = xlrd.open_workbook(file_loc)
sheet = xlsx_file.sheet_by_index(0)
sheet.cell_value(0,0)
max_row = sheet.nrows
print(max_row)
for i in range(1,4):
l.append(tuple(sheet.row_values(i)))
q = f"insert into {table} (ID,name,fav_food,loud_level,cute_level) values (%s,%s,%s)"
self.operator.executemany(q,l)
self.db.commit()
# self.db.close()
print(f"Successfully imported excel file into table: {table}")a