问题描述
|
由于某种原因,该学说正试图插入一个称为主键的索引,而不是在我的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\",nullable=false)
* @Id
* @GeneratedValue(strategy=\"NONE\")
*/
private $columnTwo;
}
解决方法
在此处添加有关多列唯一约束的信息,因为这是我在Google上搜索时看到的内容。
如果您想要这样的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