![](/img/trans.png)
[英]Haskell Persistent How to add a field to an existing table of a sql database
[英]Using an SQL table without an ID column in Haskell/Persistent
我想使用这个简化的模式使用Persistent的现有数据库:
share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persistLowerCase|
Entity sql=entities
deriving Show
EntityLink sql=entity_links
sourceId EntityId
targetId EntityId
deriving Show
|]
entities
表有一个id
列,这很好。 但是, entity_links
表没有一个,我不想添加一个。 相反,它具有主键(source_id, target_id)
。 每当我想插入EntityLink
,我都会收到此运行时错误:
SqlError {sqlState = "42703", sqlExecStatus = FatalError, sqlErrorMsg = "column \"id\" does not exist", sqlErrorDetail = "", sqlErrorHint = ""}
以下是我在代码中插入EntityLink
的方法,给出了有效的sourceId
和targetId
:
insert $ EntityLink { entityLinkSourceId = sourceId
, entityLinkTargetId = targetId
}
如何在EntityLink
类型的Persistent中禁用id
列?
您可以使用Primary
并指定属于主键的列。 喜欢:
EntityLink sql=entity_links
sourceId EntityId
targetId EntityId
Primary sourceId targetId
deriving Show
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.