【问题标题】:dataframe.to_sql index as primary key in postgresqldataframe.to_sql 索引作为 postgresql 中的主键
【发布时间】:2018-11-01 07:45:02
【问题描述】:

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

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

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

  1. 指定架构df.to_sql(schema=) docs
  2. 在表被摄取后设置主键。查询:

    ALTER TABLE table_name 添加主键(id_column_name)

有没有办法在不指定架构或更改表的情况下设置主键?

【问题讨论】:

标签: postgresql pandas sqlalchemy


【解决方案1】:

调用to_sql后:

import sqlalchemy
engine = create_engine()
engine.execute('ALTER TABLE schema.table ADD PRIMARY KEY (keycolumn);')

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-20
    • 2012-04-29
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    相关资源
    最近更新 更多