我的data
表位于MariaDB实例下的AWS-RDS中,如下所示:
| id | first | second | third | fourth | fifth | sixth |
|----|-------|--------|-------|--------|-------|-------|
| 3 | foo | foo | foo | foo | 1 | foo |
| 4 | foo | foo | foo | foo | 2 | foo |
| 5 | bar | foo | bar | foo | 3 | bar |
| 6 | bar | bar | bar | bar | 4 | bar |
| 7 | bar | bar | bar | bar | 5 | bar |
UPDATE或DELETE查询无法生成所需的输出而不返回任何错误:
con <- dbConnect(RMariaDB::MariaDB(), group = "aws-rds")
dbSendQuery(con, statement = "UPDATE data SET second = 'bar' WHERE id = 4;")
dbDisconnect(con)
返回:
SQL UPDATE数据SET second ='bar'WHERE id = 4; ROWS提取:0 [完整] 改变:1
该表似乎没有改变,但是因为读取它会返回原始表:
con <- dbConnect(RMariaDB::MariaDB(), group = "aws-rds")
data.tbl <- dbReadTable(con, "data") %>% as_tibble()
dbDisconnect(con)
data.tbl
返回:
| id | first | second | third | fourth | fifth | sixth |
|----|-------|--------|-------|--------|-------|-------|
| 3 | foo | foo | foo | foo | 1 | foo |
| 4 | foo | foo | foo | foo | 2 | foo |
| 5 | bar | foo | bar | foo | 3 | bar |
| 6 | bar | bar | bar | bar | 4 | bar |
| 7 | bar | bar | bar | bar | 5 | bar |
我错过了什么?
答案 0 :(得分:0)
来自?dbSendQuery
此方法仅适用于SELECT查询。出于兼容性原因,某些后端可能通过此方法支持数据操作查询。但是,强烈建议调用者将dbSendStatement()用于数据操作语句。
尝试使用dbSendStatement
。