我有一个 Pandas 数据框,其中包含 PostgreSQL 数据库所需的所有列,我正在尝试将数据框的行添加到数据库中,并允许它通过调用
df.to_sql(TABLE_NAME, ENGINE, if_exists='append', index=False)
自行生成可选列,但是它给了我以下错误:
ProgrammingError: (psycopg2.errors.InsufficientPrivilege) permission denied for schema public
LINE 2: CREATE TABLE "table_name" (
我猜测发生此错误是因为它试图在表已存在时创建表(尽管具有不同的列类型,例如 TEXT 而不是 VARCHAR)。我尝试使用
cursor.execute
和 psycopg2 在表中插入一行,效果很好。我是否需要向 to_sql
函数添加一些内容,还是在没有所有列存在的情况下无法将数据框添加到 PostgreSQL 数据库?
我正在使用
ENGINE = create_engine(f'postgresql+psycopg2://{USER}:{PASSWORD}@{HOST}/{DATABASE}')
创建引擎。