执行'ALTER TABLE时发生异常

时间:2018-02-27 16:31:21

标签: php mysql symfony doctrine-orm

我有多对多的关联问题 我有2个实体一个名为user

/**
 * @ManyToMany(targetEntity="DataSiteBundle\Entity\Site", mappedBy="user")
 * @ORM\JoinColumn(
 *     name="id_site",
 *     referencedColumnName="id_site",
 *     nullable=false,
 *     onDelete="CASCADE"
 * )
 */
private $site;

,另一个名为site

/**
 * @Groups({"site-read","site-write"})
 * @ORM\ManyToMany(targetEntity="UserBundle\Entity\User" , inversedBy="site")
 * @ORM\JoinColumn(
 *     name="id_user",
 *     referencedColumnName="id_user",
 *     nullable=false,
 *     onDelete="CASCADE"
 * )
 *
 */
private $user;

我正在尝试doctrine:schema:update --force

我得到了这个 在AbstractMySQLDriver.php第121行:

An exception occurred while executing 'ALTER TABLE site_user ADD CONSTRAINT FK_B6096BB0F6BD1646 FOREIGN KEY (site_id) REFERENCES sp_site (id) ON DELETE CASCADE':                                                                  

  SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint       

1 个答案:

答案 0 :(得分:0)

您的问题是存在一个包含现有约束的表。我认为有两种解决方案

如果您在开发中,则可以重建数据库

int[] arr = { 0, 0, 0 };
int i = 1;
i = i + arr[i++] + arr[i++];
System.out.println(i); // output is zero

如果你正在制作我认为你需要制作一个脚本来获取你的数据,保存某个地方,删除表并重新制作它,或者在sql中创建一个脚本来跳过这个问题