r - 如何在 R 中使用 RPostgreSQL 在 INSERT 语句中获取自动生成的键
问题描述
RPostgreSQL
在使用 PostgreSQL 的 R 数据库接口 ( )时,我找不到在 INSERT 语句之后获取自动生成的密钥的方法。
有没有办法像 JDBC 一样做到这一点?
https://docs.oracle.com/javase/7/docs/api/java/sql/Statement.html#getGeneratedKeys%28%29
解决方案
最终,我利用了 PostgreSQL 特定的 SQL 扩展,即语句的RETURNING
子句INSERT
,它在执行INSERT
语句后返回生成的主键。也有必要欺骗DBI
处理INSERT
查询,就好像它是一个SELECT
查询来访问返回的值,即生成的键。
假设我们在数据库中有下表:USERS(id, name)
,其中id
是自动生成的主键。以下示例 R 代码片段说明了从数据库获取生成的密钥并将其分配给 R 对象的概念:
query <- sprintf(
"INSERT INTO users (name) VALUES ('%s') RETURNING id",
users$name
)
dbres = dbGetQuery(conn, query)
users$id = dbres$id
推荐阅读
- event-handling - Shopware 6:商务活动问题、多个订单确认
- c - 如何更改特定内存地址中的值?
- ios - Swift 中存储属性和计算属性的值
- r - 如何在 R 中的时间序列图中仅包含交易日
- elixir - 在 Elixir 中最后一个斜杠后删除字符串
- javascript - Node.js 脚本在本地工作,但在 firebase 服务上不能在本地工作?
- reactjs - 我如何在反应原生钩子中使背景颜色动态
- python - 在 python 中可视化数据
- c# - 没有代理的 HttpWebRequest 很慢
- corda - 使用 ZipEntry 重复附件异常 Corda