sqlite - Haskell SQLite3 查询全部
问题描述
想确定表的大小(长度)以避免用户输入已经存在的增量 ID(注意:留下所有 Haskell 书籍以弄湿我的脚)。有一张桌子,id, task, date_in, date_out
需要计算编号。使用此功能:
checkUniqueID = do
conn <- open "taglist.db"
len <- query conn "SELECT * FROM task;" (Only xxx) :: IO [id]
let showLength = length $ len
print showLength
close conn
return ()
但是:省略 ' Only
' 会导致 ghci 提及的参数太少,但我真的不知道在 xxx 处放什么。太糟糕了,所有的 Haskell 文档都如此分散,因为它是一种很酷的语言。多谢你们!
解决方案
我对这些库不是很熟悉。我检查了文档Database.PostgreSQL.Simple
并发现,如果您的查询没有参数,则可以使用query_
和省略参数元组。文档开头的示例非常有帮助。
话虽这么说,你的方法看起来是错误的。您从数据库中提取整个表只是为了计算条目。这是一种浪费:您应该改用类似select count(*) from ..
的东西,以便仅查询长度。
这可能有效:(同样,我从未使用过该库)
[Only len] <- query_ conn "select count(*) from task" :: IO [Only Int]
推荐阅读
- java - 如何减少 libgdx 中 2D 精灵的高 RAM 使用率
- dc.js - dc.js 中的失败百分比
- python - 如何沿轴使用 argmax 来获取 numpy 二维数组每一列的最大值?
- c - linux设备驱动和insmod
- php - 管理社交登录验证数据
- c# - C# int.ParseInt() 性能问题
- file-io - 在 Kotlin 中使用 BiPredicate 的 Files.find()
- r - R 正则表达式:找到一个字母作为一个词,没有别的
- php - Codeigniter - JSON 格式的 Img 值
- android - React-native Flatlist 数据发布到 Api