mysql - MariaDB - UPDATE/DELETE 静默失败
问题描述
我的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 data SET second = 'bar' WHERE id = 4; 获取的行数: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 |
我错过了什么?
解决方案
从?dbSendQuery
此方法仅适用于 SELECT 查询。出于兼容性原因,某些后端可能通过此方法支持数据操作查询。但是,强烈建议调用者将 dbSendStatement() 用于数据操作语句。
尝试使用dbSendStatement
.
推荐阅读
- angular - FullCalendar TypeError: $(...).fullCalendar 不是 prod 配置文件的函数
- javascript - 如何获取 Facebook AR 手部追踪器的 x 位置?
- javascript - 使用javascript填充角度输入
- powershell - 使用 Invoke-WmiMethod 更改 RDP
- git - 是否可以从 git 对象中删除文件?
- git - Git + libsecret 抛出“没有 X11 $DISPLAY 无法自动启动 D-Bus”
- android - 媒体编解码器 - YUV_YV12 到 YUV420SP/NV21
- python - 如何与其他用户共享我的 Tkinter 应用程序?
- vba - VBA Powerpoint - 文本框 - 将 WordWrap 转换为回车
- gradle - 在自定义 gradle 插件中,如何添加任务取决于其他插件中定义的任务?