Доктрина 2 несколько первичных ключей - PullRequest
7 голосов
/ 15 апреля 2011

По какой-то причине доктрина пытается вставить индекс, называемый первичным, вместо фактического добавления первичного ключа в мою базу данных MYSQL, вот что генерирует Doctrine:

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;
}

1 Ответ

1 голос
/ 23 февраля 2012

Добавление информации о множественных уникальных ограничениях здесь, потому что это то, что пришло мне в голову, когда я погуглил.

Если вы хотите что-то вроде этого SQL:

CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

используйте эту аннотацию в Doctrine2

@Table(name="ecommerce_products",uniqueConstraints={@UniqueConstraint(name="search_idx", columns={"name", "email"})})

, см .: http://docs.doctrine -project.org /проекты / доктрина-ОРМ / ы / 2.0.x / ссылки / аннотации-reference.html # UniqueConstraint

...