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

How to find out which key is conflicting when using the replaceUnique method?

我正在使用 replaceUnique method,它具有 return 类型的 ReaderT backend m (Maybe (Unique record))。我的数据库 table 有两个唯一字段,如果违反了唯一性,我想找出哪个键有冲突。我该怎么做?

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

case unique of
  UniqueEmail _ -> -- email is conflicting
  UniqueDisplayName _ -> -- displayName is conflicting

其中 uniqueUnique recordUniqueEmail _UniqueDisplayName _ 是唯一性约束。