问题
我正在尝试将 R 数据框的内容复制到位于 schemadf的 PostgreSQL 表中。默认情况下,PostgreSQL 会将表写入模式,我不想更改此设置。这种转移的两个独特方面是:table_nameschema_namepublic
- 在非默认模式下写入表;和
- 数据帧
df包含的字段数量少于table_name. 但是, 中包含的所有字段确实存在于 中。dftable_name
我试过的
我首先尝试通过使用解决方法dbWriteTable从RPostgreSQL包中使用:
dbWriteTable(con, c("schema_name","table_name"), df, append = T)
导致以下异常:
Error in postgresqlgetResult(new.con) :
RS-DBI driver: (could not Retrieve the result : ERROR: missing data for column "extra_col"
CONTEXT: COPY df, line 1: " [removed contents] "
然后我尝试dbWriteTable2从caroline包(上述dbWriteTable函数的包装器)中找到我们,但上面使用的非默认模式黑客似乎不起作用:
dbWriteTable2(con, c("schema_name","table_name"), df, append = T, add.id = FALSE)
创建以下异常:
creating NAs/NULLs for for fields of table that are missing in your df
Error in postgresqlExecStatement(conn, statement, ...) :
RS-DBI driver: (could not Retrieve the result : ERROR: relation "schema_name" does not exist
LINE 1: SELECT * FROM schema_name ORDER BY id DESC LIMIT 1