【发布时间】:2020-04-07 06:30:39
【问题描述】:
我正在尝试使用 insert 选项将从 Pandas Dataframe 获得的输出插入到 Redshift 表中。以下是我的数据:
dwh_cur.execute("""select max(created_at) from table_name""")
df = dwh_cur.fetchall()
df = pd.DataFrame(df, columns = ['max_date']) <<-- Pandas output
我正在尝试使用以下查询将上述输出插入到 Redshift 表中:
dwh_cur.execute("""insert into new_table values('table_name', max_date)""")
我收到一个错误
psycopg2.ProgrammingError: column "max_date" does not exist in new_table
new_table 结构如下所示:
table_name, max_date
【问题讨论】:
-
错误信息显示 max_date 不在表中。你能检查数据库,确认表格,检查拼写吗?错误几乎说明了一切。所以我认为这应该是重点。我假设该表已经存在于数据库中
-
@sammywemmy 是的,表和列确实存在。只是当我执行插入查询时,它似乎没有从 DataFrame 输出中获取值并将其存储在目标表的
max_date列中 -
另外,我不认为你是通过 pandas 插入数据的。那是你我之前没有提到它。通常,pandas 有 to_sql 方法。 y 是引号中的表名吗?它只是表中的一列吗?如果列已经存在,试图看看为什么 psycopg 会给你那个错误
标签: pandas amazon-redshift psycopg2