如何向Persistent聲明我有一個表,其主鍵是兩個字段的組合?如何在Persistent中定義組合鍵
例如,假設我有一個包含FIRST_NAME和姓氏表,然後在SQL語法,我需要這樣的:
CONSTRAINT pk_PersonID PRIMARY KEY (first_name,last_name)
感謝,
如何向Persistent聲明我有一個表,其主鍵是兩個字段的組合?如何在Persistent中定義組合鍵
例如,假設我有一個包含FIRST_NAME和姓氏表,然後在SQL語法,我需要這樣的:
CONSTRAINT pk_PersonID PRIMARY KEY (first_name,last_name)
感謝,
見http://www.yesodweb.com/book/persistent,節唯一
Person
firstName String
lastName String
age Int
PersonName firstName lastName
deriving Show
這定義了由firstName和lastName組成的唯一鍵。
您可以按照以下代碼使用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
This wiki page採取解釋了在持久定義模型的不同的語法。它確實應該是Yesod書的一部分。
這使得它獨一無二,但它使它成爲主鍵嗎? –
默認情況下,存在一個整數id字段,它是主鍵並在內部使用。爲什麼你需要一個特定的主鍵?如果你真的這麼做,我認爲你不能用香草持久性來做,你可能必須自己編碼。 –
我正在使用與現有應用程序共享的現有表...看起來好像我需要用一些解決方法來克服此問題。 –