当被多个表引用时,使用条令删除MySQL中的条目

当被多个表引用时,使用条令删除MySQL中的条目,mysql,doctrine-orm,cascade,Mysql,Doctrine Orm,Cascade,我有一个数据库模式,其中一个表表示物理地址地址,两个表表示,一个表表示制造商,一个表表示供应商。由于我们数据库的性质,制造商和供应商可能引用相同的地址 当我试图使用条令删除引用制造商也引用的地址的供应商时,我的问题就开始了制造商和供应商都与地址有OneToOne关系 我可以在phpMyAdmin中很好地删除条目,并且我尝试了条令中的cascade=“remove”和orphanremove=true选项,但这两个选项似乎都不起作用 你有什么想法可以让它工作吗?这就是我在制造商和供应商中定义地址的

我有一个数据库模式,其中一个表表示物理地址
地址
,两个表表示,一个表表示
制造商
,一个表表示
供应商
。由于我们数据库的性质,
制造商
供应商
可能引用相同的
地址

当我试图使用条令删除引用
制造商也引用的
地址的
供应商时,我的问题就开始了<代码>制造商
供应商
都与
地址
OneToOne
关系

我可以在phpMyAdmin中很好地删除条目,并且我尝试了条令中的
cascade=“remove”
orphanremove=true
选项,但这两个选项似乎都不起作用

你有什么想法可以让它工作吗?这就是我在
制造商
供应商
中定义
地址的方式:

/**
 * @ORM\OneToOne(targetEntity="Address", orphanRemoval=true)
 */
private $address;
我不知道为什么我不能让它在phpMyAdmin中正常工作。这种关系是单向的,因此
地址
制造商
供应商
都没有关系

编辑(显示了实际上应该从数据库中删除实体的代码): 以下是实际删除实体的代码(其中,
$instance
只是一个整数,表示实体的
id
$entity
是我要删除的实体类型的名称(例如,
Address
):

此代码的结果(当尝试删除指向
制造商
实例也指向的
地址
实例的
供应商
实例时)是服务器500错误,错误日志中有以下内容:

PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`{withheld}`.`Manufacturers`, CONSTRAINT `FK_272810E7F5B7AF75` FOREIGN KEY (`address_id`) REFERENCES `Addresses` (`id`))' in {withheld}/application/libraries/Doctrine/DBAL/Connection.php:754\nStack trace:\n#0 {withheld}/application/libraries/Doctrine/DBAL/Connection.php(754): PDOStatement->execute(Array)\n#1 {withheld}/application/libraries/Doctrine/DBAL/Connection.php(438): Doctrine\\DBAL\\Connection->executeUpdate('DELETE FROM Add...', Array)\n#2 {withheld}/application/libraries/Doctrine/ORM/Persisters/BasicEntityPersister.php(464): Doctrine\\DBAL\\Connection->delete('Addresses', Array)\n#3 {withheld}/application/libraries/Doctrine/ORM/UnitOfWork.php(993): Doctrine\\ORM\\Persisters\\BasicEntityPersister->delete(Object(Proxies\\__CG__\\Entities\\Address))\n#4 {withheld}/application/libraries/Doctrine/ORM/UnitOfWork.php(331): Doctrine\\ORM\\UnitOfWork->executeDeletions(Object(Doctrine\\ORM\\Mapping\\ClassMetadata))\n#5 {withheld}/application/libraries/Doctrine/ORM/EntityManager.php(355): Doctrine\\ORM\\UnitOfWork->commit(NULL)\n#6 {withheld}/application/controllers/ajax.php(70): Doctrine\\ORM\\EntityManager->flush()\n#7 [internal function]: Ajax->delete('vendors', '1')\n#8 {withheld}/system/core/CodeIgniter.php(359): call_user_func_array(Array, Array)\n#9 {withheld}/index.php(202): require_once('{withheld}...')\n#10 {main}\n  thrown in {withheld}/application/libraries/Doctrine/DBAL/Connection.php on line 754

您正在运行的代码到底是什么?结果是什么?我添加了您请求的信息。您确定您正在执行相同的精确查询吗?因为这里的失败非常明显
PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`{withheld}`.`Manufacturers`, CONSTRAINT `FK_272810E7F5B7AF75` FOREIGN KEY (`address_id`) REFERENCES `Addresses` (`id`))' in {withheld}/application/libraries/Doctrine/DBAL/Connection.php:754\nStack trace:\n#0 {withheld}/application/libraries/Doctrine/DBAL/Connection.php(754): PDOStatement->execute(Array)\n#1 {withheld}/application/libraries/Doctrine/DBAL/Connection.php(438): Doctrine\\DBAL\\Connection->executeUpdate('DELETE FROM Add...', Array)\n#2 {withheld}/application/libraries/Doctrine/ORM/Persisters/BasicEntityPersister.php(464): Doctrine\\DBAL\\Connection->delete('Addresses', Array)\n#3 {withheld}/application/libraries/Doctrine/ORM/UnitOfWork.php(993): Doctrine\\ORM\\Persisters\\BasicEntityPersister->delete(Object(Proxies\\__CG__\\Entities\\Address))\n#4 {withheld}/application/libraries/Doctrine/ORM/UnitOfWork.php(331): Doctrine\\ORM\\UnitOfWork->executeDeletions(Object(Doctrine\\ORM\\Mapping\\ClassMetadata))\n#5 {withheld}/application/libraries/Doctrine/ORM/EntityManager.php(355): Doctrine\\ORM\\UnitOfWork->commit(NULL)\n#6 {withheld}/application/controllers/ajax.php(70): Doctrine\\ORM\\EntityManager->flush()\n#7 [internal function]: Ajax->delete('vendors', '1')\n#8 {withheld}/system/core/CodeIgniter.php(359): call_user_func_array(Array, Array)\n#9 {withheld}/index.php(202): require_once('{withheld}...')\n#10 {main}\n  thrown in {withheld}/application/libraries/Doctrine/DBAL/Connection.php on line 754