首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何确定数据库连接在GRDB中是读/写还是只读?

如何确定数据库连接在GRDB中是读/写还是只读?
EN

Stack Overflow用户
提问于 2019-07-19 00:20:09
回答 1查看 195关注 0票数 0

在GRDB中,我可以使用

代码语言:javascript
复制
try dbPool.read { db in

我可以创建读写数据库连接。

代码语言:javascript
复制
try dbPool.write { db in

在每种情况下,我都可以使用db作为参数从闭包中调用函数。在GRDB中,只读数据库连接可以在不同的线程中并行运行。写入数据库连接阻塞数据库。

我有一个我想在一些功能中使用的模式:

  • 选择对某些属性进行筛选的记录。
  • 如果找到一条记录,请返回它。
  • 如果没有找到记录,则使用这些属性创建默认占位符记录。
  • 如果数据库是读-写的,保存默认占位符并返回它。
  • 如果db是只读的,只需返回占位符即可。

是否有方法确定数据库是否是只读的?查看http://groue.github.io/GRDB.swift/docs/4.1/Classes/Database.html上的参考文档,除了错误处理之外,我看不出有一种简单的方法来确定这一点。

如果db是只读的,我可以尝试保存函数并捕获错误。

EN

回答 1

Stack Overflow用户

发布于 2019-07-23 06:48:56

是否有方法确定数据库是否是只读的?

不,没有任何公开的方法来获取这些信息。这是可能的,但是特性请求还没有出现。

如果db是只读的,我可以尝试保存函数并捕获错误。

对,是这样。

我有一个模式我想在一些功能中使用..。

您所描述的模式看起来像是一个简单的简单写入的过早优化。你注意到实际的性能问题了吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57104078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档