dataframe.to_sql 索引作为 postgresql 中的主键

Rut*_*ste 5 postgresql sqlalchemy pandas

我有一个带有索引的数据框,我想将其存储在 postgresql 数据库中。为此我使用df.to_sql(table_name,engine,if_exists='replace', index=True,chunksize=10000)

pandas 数据帧中的索引列被复制到数据库,但未设置为主键。

有两种解决方案需要额外的步骤:

  1. 指定模式df.to_sql(schema=) 文档
  2. 在摄取表后设置主键。询问:

    ALTER TABLE table_name 添加主键(id_column_name)

有没有一种方法可以在不指定架构或更改表的情况下设置主键?

Meh*_*ıcı 2

调用to_sql后:

import sqlalchemy
engine = create_engine()
engine.execute('ALTER TABLE schema.table ADD PRIMARY KEY (keycolumn);')
Run Code Online (Sandbox Code Playgroud)

不幸的是,pandas.to_sql没有设置主键,它甚至还破坏了现有表的主键。人们必须了解主键。