Haskell 如何在使用replaceUnique方法时找出哪个键冲突?

Haskell 如何在使用replaceUnique方法时找出哪个键冲突?,haskell,yesod,haskell-persistent,Haskell,Yesod,Haskell Persistent,我使用的是,它的返回类型为ReaderT backend m(可能是(唯一记录))。我的数据库表有两个唯一字段,如果违反了唯一性,我想找出哪个键是冲突的。我如何才能做到这一点?这可以通过以下代码实现: case unique of UniqueEmail _ -> -- email is conflicting UniqueDisplayName _ -> -- displayName is conflicting 其中,unique是unique记录和uniquemail

我使用的是,它的返回类型为
ReaderT backend m(可能是(唯一记录))
。我的数据库表有两个唯一字段,如果违反了唯一性,我想找出哪个键是冲突的。我如何才能做到这一点?

这可以通过以下代码实现:

case unique of
  UniqueEmail _ -> -- email is conflicting
  UniqueDisplayName _ -> -- displayName is conflicting
其中,
unique
unique记录
uniquemail
UniqueDisplayName
是唯一性约束