想要确定表格的大小(长度),以避免用户输入已经存在的增量ID(注意:将所有Haskell书籍都弄湿了)。有id, task, date_in, date_out
的表格,需要计算数字ID。使用此功能:
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文档都是如此分散,因为它是一种很酷的语言。
谢谢大家!
答案 0 :(得分:0)
我对这些库并不十分熟悉。我检查文档
的Database.PostgreSQL.Simple
并发现,如果查询中没有参数,则可以使用query_
并省略参数元组。文档开头的示例很有帮助。
话说回来,您的方法看起来不对。您从数据库中提取整个表只是为了计数条目。这很浪费:您应该使用select count(*) from ..
之类的东西,以便仅查询长度。
这可能有效:(再次,我从未使用过该库)
[Only len] <- query_ conn "select count(*) from task" :: IO [Only Int]