PostgreSQL.Simple

时间:2017-12-16 16:54:18

标签: haskell postgresql-simple

我的架构:

CREATE TABLE IF NOT EXISTS feed (
  id SERIAL PRIMARY KEY CHECK (id > 0),
  name TEXT NOT NULL,
  url TEXT NOT NULL
);

我的代码:

{-# LANGUAGE OverloadedStrings #-}

import           Database.PostgreSQL.Simple

hello :: IO String
hello = do
  conn <- connectPostgreSQL ""
  [Only i] <- query_ conn "SELECT url FROM feed WHERE id = 1"
  return i

main :: IO ()
main = hello >>= print

我的错误:

user error (Pattern match failure in do expression at src/Main.hs:8:3-10)

我的问题:

  • 如何解决此错误?
  • 我如何获得更详细的错误消息?

更新:我连接到错误的数据库,因此我对结果集的假设是错误的。它包含零行而不是一行,因此它尝试将[][Only i]匹配。我通过在ghci中执行查询找到了它:

:set -XOverloadedStrings
import Database.PostgreSQL.Simple
do;  conn <- connectPostgreSQL "" ;query_ conn "SELECT url FROM feed WHERE id = 1"

0 个答案:

没有答案