Python:将主键添加到 MySQL 和 dataframe.to_sql

Python: Add primary key to MySQL with dataframe.to_sql

当我通过 db4free.net 将数据帧导出到 MySQL 时,我当前的 python 代码正在运行。但是,现在我需要使用backand提供的另一个MySQL,我看到我创建的数据库table,'KLSE'有一个主键问题(老实说,我不明白主键如何帮助我)。 我检查了 dataframe.to_sql 的文档,我注意到即使 index=True 也不意味着主键。我想知道我可以用来将主键添加到当前存在的 解决方法 是什么。仅供参考,我从后台和数据库中执行了一个 dataframe.read_sql,我设法查询了数据(尽管在后台它显示错误为没有主键,因此我无法创建 REST API)。 以前的代码适用于 db4free.net MySQL 但 backand MySQL

的主键错误
import pandas as pd
from sqlalchemy import create_engine

engine = create_engine('mysql+mysqldb://abc:abc@abc')

df_2.to_sql(name='KLSE', con=engine, if_exists='replace')

我尝试使用 MySQLdb 库并添加主键,但是 KLSE table 已经存在,因此无法创建。

import pandas as pd
import MySQLdb as mdb

engine = mdb.connect(host='abc',user='abc',passwd='pw',db='abc$default')
cur = engine.cursor()
cur.execute("INSERT INTO KLSE(Id INT PRIMARY KEY AUTO_INCREMENT, \Name VARCHAR(25))")
df_2.to_sql(name='KLSE', con=engine, if_exists='replace')

您只需添加一次主键。你可以这样做:

如果您想添加一个列作为主键(主键):

alter table KLSE add id int primary key auto_increment;

如果您的 table 已经有一个要用作 PK(主键)的列:

alter table KLSE modify <existing_column_name> int auto_increment primary key;