2011-04-15 127 views
6

出於某種原因學說試圖插入稱爲原發性的,而不是實際添加在我的MySQL數據庫中的主鍵索引,這是什麼主義產生:學說2多個主鍵

CREATE UNIQUE INDEX primary ON my_table (columnOne, columnTwo); 

這是我的SQL編輯器生成,這是唯一可行的方法:

ALTER TABLE my_table ADD PRIMARY KEY (columnOne,columnTwo); 

這是我的課:

.... 
class MyTable 
{ 
    /** 
    * @var integer $columnOne 
    * 
    * @Column(name="columnOne", type="integer", nullable=false) 
    * @Id 
    * @GeneratedValue(strategy="NONE") 
    */ 
    private $columnOne; 

    /** 
    * @var integer $columnTwo 
    * 
    * @Column(name="columnTwo", type="integer", nullable=false) 
    * @Id 
    * @GeneratedValue(strategy="NONE") 
    */ 
    private $columnTwo; 
} 
+0

你是怎麼解決這個問題到底是誰? – helvete 2017-11-09 13:30:01

回答

2

答案是是和不是。請看看這個博客帖子:

http://www.doctrine-project.org/blog/dc2-experimental-associations-id-fields.html

+0

我認爲問題在於doctrine orm:schema-tool:update試圖插入一個名爲primary的索引而不是實際的主值。這將失敗,並給我一個mysql警告。 – Dennis 2011-04-15 13:54:16

+0

@丹尼斯只是一個預感,但我認爲你不應該在組合鍵中使用'@ GeneratedValue'。 – vbence 2011-04-15 13:58:52

+0

如果我刪除GeneratedValue,或者如果我使用strategy =「AUTO」(如果im沒有錯,也是一樣)orm:schema-tool:update只要我有一個主鍵就不會抱怨,但如果我刪除了主關鍵或如果我想例如要創建一個乾淨的數據庫我仍然會得到CREATE UNIQUE INDEX問題。 – Dennis 2011-04-15 20:16:25