我在数据库中的table(table1)
Column | Type | Modifiers
--------+---------+-----------
date1 | date | not null
line_1 | numeric | default 0
line_2 | numeric | default 0
line_3 | numeric | default 0
line_4 | numeric | default 0
line_5 | numeric | default 0
R控制台
> line1 <- 32+45
> line1
[1] 77
我想将这些值(line1 = 77)导出到line_1列的表(table1)中 和date1列应填写当前日期减去1天。
我尝试使用以下命令更新line1值,但我收到错误
s&lt; - dbGetQuery(con,&#34; insert into table1(line_1)values(line1)&#34;)
postgresqlExecStatement(conn,statement,...)出错: RS-DBI驱动程序:(无法检索结果:错误:列&#34;第1行和第34行;不存在 第1行:插入table1(line_1)值(第1行) ^ ) 警告信息: 在postgresqlQuickSQL(conn,statement,...)中: 无法将execuinsert创建为table1(line_1)值(line1 )
答案 0 :(得分:0)
我认为您的代码中存在两个问题 -
首先,您可能应该使用dbSendQuery()。 这是因为您正在向Postgres服务器发送命令。
其次,当您将文本放入双引号时,这通常会告诉R将其解释为字符串。因此,当您“插入table1(line_1)值(line1)”时,您实际上是在告诉Postgres将“line1”插入“line_1”。如果你只想添加一个值,你想要的是粘贴命令。
试试这个:
dbSendQuery(con, paste0("insert into table1 (line_1) values (",line1,")"))
和你的约会:
date1<-Sys.Date()-1
dbSendQuery(con, paste0("insert into table1 (date1) values (",date1,")"))