Uri*_*olz 13 haskell persistent yesod
如何向Persistent声明我有一个表,其主键是两个字段的组合?
例如,假设我有一个包含first_name和last_name的表,那么在SQL语法中我需要类似的东西:
CONSTRAINT pk_PersonID PRIMARY KEY (first_name,last_name)
Run Code Online (Sandbox Code Playgroud)
谢谢,
您可以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
Run Code Online (Sandbox Code Playgroud)
上面的代码来自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
Run Code Online (Sandbox Code Playgroud)
这定义了由名字和姓氏组成的唯一键。