如何向 Persistent 声明我有一个主键是两个字段组合的表?
例如,假设我有一个包含 first_name 和 last_name 的表,那么在 SQL 语法中,我需要类似:
CONSTRAINT pk_PersonID PRIMARY KEY (first_name,last_name)
谢谢,
如何向 Persistent 声明我有一个主键是两个字段组合的表?
例如,假设我有一个包含 first_name 和 last_name 的表,那么在 SQL 语法中,我需要类似:
CONSTRAINT pk_PersonID PRIMARY KEY (first_name,last_name)
谢谢,
您可以Primary <field1> <field2>
按照下面的代码使用语法。
PrimaryCompositeWithOtherNullableFields
foo String maxlen=20
bar String maxlen=20
baz String Maybe
Primary foo bar -- THIS LINE --
deriving Eq Show
enter code here
上述代码取自https://github.com/yesodweb/persistent/blob/master/persistent-test/src/CompositeTest.hs#L74的一项测试
这个 wiki 页面解释了在持久化中定义模型的不同语法。它真的应该是 Yesod 书的一部分。
请参阅http://www.yesodweb.com/book/persistent,唯一性部分
Person
firstName String
lastName String
age Int
PersonName firstName lastName
deriving Show
这定义了一个由 firstName 和 lastName 组成的唯一键。