【问题标题】:R equivalent for postgres nextval()R 等效于 postgres nextval()
【发布时间】:2021-11-26 09:00:00
【问题描述】:

我正在 R Shiny 中构建一个应用程序。 单击“输入数据”后,将显示用户输入数据的 UI。 单击“提交”时,输入的数据将存储在 PostgreSQL 数据库中。 现在我通过dbGetQuery() 命令将数据库存储为本地的反应数据表。然后我只需将主键 ID 加 1 并将数据添加到我的反应式数据表中。然后我使用dbWriteTable() 将其插入到 Postgres 中。

当多个用户想要同时输入数据时,此过程会导致主键问题。 当用户单击“输入数据”以使另一个用户获得下一个 ID 时,是否有一种方法可以使会话以某种方式“保护”用户的下一个 ID?这将解决主键问题。

在 Postgres 中,我读到了 setval()nextval() 命令,但我在 R Shiny 中寻找类似的东西。

【问题讨论】:

  • 我想你可能想看看pool 包以获得更好的数据库连接管理。
  • AFAIK 您不需要自己更新 PK 列 - 只需插入所有其他列,postgres 将负责为该更新提供新密钥(也用于并发更新)。请参阅示例 herehere。 PS:通过dbExecute运行您的插入语句。

标签: r postgresql shiny


【解决方案1】:

可以通过dbGetQuery(con, "select nextval(table)")$nextval使用postgres的id序列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多