如何从R中将单行数据写入postgresql表?

时间:2016-10-06 08:34:43

标签: r postgresql rpostgresql

我在postgresql数据库myschema.fruits中有一个表mydatabase。从R脚本中我想在该表中插入一行,最后是我的脚本。表格行有3列typetastecolor。我在R脚本中有3个不同变量的变量名,如下所示:

type <- "Apple"
taste <- "Sweet"
color <- "Red"

我想使用RPostgreSQL driver来执行此插入,但我无法弄清楚如何执行此操作?

2 个答案:

答案 0 :(得分:2)

作为使用 INSERT INTO 命令的替代方法,请考虑使用低级postgresqlExecStatement函数,该函数允许查询的参数化。这样做的主要优点是您不必为适当的数据类型手动构造查询字符串,在这种情况下,您可以省略额外的引号'

type <- "Apple"
taste <- "Sweet"
color <- "Red"

con = dbConnect(dbDriver("PostgreSQL"),dbname = "mydatabase",
                host = "localhost", port = 5432,
                user = "postgres") 
tmp <- postgresqlExecStatement(con,
               'insert into myschema.fruits VALUES ($1, $2, $3)',
               list(type, taste, color))
dbClearResult(tmp)
dbDisconnect(con)

答案 1 :(得分:1)

如有必要,请更改主机,端口,用户并添加密码。

第一个选项:将数据框附加到表格

type <- "Apple"
taste <- "Sweet"
color <- "Red"
qry = paste0("INSERT INTO myschema.fruits VALUES ('",type,"','",taste,"','",color,"');")

con = dbConnect(dbDriver("PostgreSQL"),dbname = "mydatabase",
                host = "localhost", port = 5432,
                user = "postgres") 
dbSendQuery(con,qry)
dbDisconnect(con)

第二个选项:使用INSERT INTO命令

<a href="/about">About</a> <!-- Cannot GET error-->
<a href="/about">About</a> <!-- same code as above, but works if your site structure is:  ./about/index.html-->
<a href="/about.html">About</a> <!-- OK -->