我在PostgreSQL数据库中有一个表,它有一个BIGSERIAL自动递增的主键.重新使用:
CREATE TABLE foo
(
"Id" bigserial PRIMARY KEY,
"SomeData" text NOT NULL
);
Run Code Online (Sandbox Code Playgroud)
我想通过RPostgreSQL包从R中将一些数据附加到此表中.在R中,数据不包括Id列,因为我希望数据库生成这些值.
dfr <- data.frame(SomeData = letters)
Run Code Online (Sandbox Code Playgroud)
这是我用来尝试编写数据的代码:
library(RPostgreSQL)
conn <- dbConnect(
"PostgreSQL",
user = "yourname",
password = "your password",
dbname = "test"
)
dbWriteTable(conn, "foo", dfr, append = TRUE, row.names = FALSE)
dbDisconnect(conn)
Run Code Online (Sandbox Code Playgroud)
不幸的是,dbWriteTable抛出一个错误:
## Error in postgresqlgetResult(new.con) :
## RS-DBI driver: (could not Retrieve the result : ERROR: invalid input syntax for integer: "a"
## CONTEXT: COPY …Run Code Online (Sandbox Code Playgroud)