MariaDB - UPDATE / DELETE无提示失败

时间:2018-05-05 14:46:37

标签: mysql r mariadb amazon-rds r-dbi

我的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   |

我错过了什么?

1 个答案:

答案 0 :(得分:0)

来自?dbSendQuery

  

此方法仅适用于SELECT查询。出于兼容性原因,某些后端可能通过此方法支持数据操作查询。但是,强烈建议调用者将dbSendStatement()用于数据操作语句。

尝试使用dbSendStatement