当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R dbplyr get_returned_rows 提取并检查返回的行


[Experimental]

get_returned_rows() 提取由 rows_insert()rows_append()rows_update()rows_upsert()rows_delete() 生成的 RETURNING 行(如果使用 returning 参数调用这些行)。如果此信息不可用,则会引发错误。

has_returned_rows() 检查 x 是否存储了 rows_insert()rows_append()rows_update()rows_upsert()rows_delete() 生成的 RETURNING 行。

用法

get_returned_rows(x)

has_returned_rows(x)

参数

x

一个懒惰的表格。

对于 get_returned_rows() ,一个小标题。

对于 has_returned_rows() ,标量逻辑。

例子

library(dplyr)

con <- DBI::dbConnect(RSQLite::SQLite(), ":memory:")
DBI::dbExecute(con, "CREATE TABLE Info (
   id INTEGER PRIMARY KEY AUTOINCREMENT,
   number INTEGER
)")
#> [1] 0
info <- tbl(con, "Info")

rows1 <- copy_inline(con, data.frame(number = c(1, 5)))
rows_insert(info, rows1, conflict = "ignore", in_place = TRUE)
#> Matching, by = "number"
info
#> # Source:   table<Info> [2 x 2]
#> # Database: sqlite 3.41.2 [:memory:]
#>      id number
#>   <int>  <int>
#> 1     1      1
#> 2     2      5

# If the table has an auto incrementing primary key, you can use
# the returning argument + `get_returned_rows()` its value
rows2 <- copy_inline(con, data.frame(number = c(13, 27)))
info <- rows_insert(
  info,
  rows2,
  conflict = "ignore",
  in_place = TRUE,
  returning = id
)
#> Matching, by = "number"
info
#> # Source:   table<Info> [4 x 2]
#> # Database: sqlite 3.41.2 [:memory:]
#>      id number
#>   <int>  <int>
#> 1     1      1
#> 2     2      5
#> 3     3     13
#> 4     4     27
get_returned_rows(info)
#> # A tibble: 2 × 1
#>      id
#>   <int>
#> 1     3
#> 2     4
源代码:R/rows.R

相关用法


注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Extract and check the RETURNING rows。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。