0

我的架构:

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"
4

0 回答 0