我有一个带有索引的数据框,我希望将其存储在postgresql数据库中。为此,我使用df.to_sql(table_name,engine,if_exists='replace', index=True,chunksize=10000)
pandas dataframe中的索引列被复制到数据库,但未设置为主键。
有两种解决方案需要额外的步骤:
df.to_sql(schema=)
docs 在摄取表格后设置主键。查询:
ALTER TABLE table_name ADD PRIMARY KEY(id_column_name)
有没有办法在不指定架构或更改表的情况下设置主键?
答案 0 :(得分:2)
调用to_sql后:
import sqlalchemy
engine = create_engine()
engine.execute('ALTER TABLE schema.table ADD PRIMARY KEY (keycolumn);')
不幸的是,pandas.to_sql 没有设置主键,它甚至还会破坏现有表的主键。必须了解主键。