【问题标题】:Doctrine 2 multiple primary keysDoctrine 2 多主键
【发布时间】:2011-04-15 12:34:06
【问题描述】:

由于某种原因,Doctrine 试图插入一个名为 primary 的索引,而不是在我的 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;
}

【问题讨论】:

  • 你最后是怎么解决的?

标签: php mysql orm doctrine-orm


【解决方案1】:

在此处添加有关多列唯一约束的信息,因为这是我在谷歌搜索时出现的。

如果你想要这样的 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/projects/doctrine-orm/en/2.0.x/reference/annotations-reference.html#uniqueconstraint

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-04
    • 2018-09-19
    • 2011-06-29
    • 1970-01-01
    相关资源
    最近更新 更多