我怀疑。我在MySQL中有两个表InnoDB,这是他们的实体:
class Account
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* one account is created by one user
*
* @ORM\ManyToOne(targetEntity="User")
* @ORM\JoinColumn(name="createdby", referencedColumnName="id", onDelete="CASCADE")
*/
private $createdby;
.
.
.
和
class User
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* Many Users belong to One Account
*
* @ORM\ManyToOne(targetEntity="Account", inversedBy="users")
* @ORM\JoinColumn(name="account", referencedColumnName="id")
*/
private $account;
所以有两种不同的关系,一种是用户创建的"帐户"另一个是"用户属于一个帐户"。
当我尝试删除帐户(pe.DELETE FROM account WHERE id = 28)时,我也想删除已创建帐户的用户。我并不是说删除属于此帐户的用户,只是删除创建该帐户的用户。但它给了我一个外键约束错误:
致命错误:未捕获PDOException:SQLSTATE [23000]:完整性约束违规:1451无法删除或更新父行:外键约束失败(example
。user
,CONSTRAINT {{1} } FOREIGN KEY(FK_8D93D6497D3656A4
)参考account
(account
))...
有任何建议吗?
感谢。