我在新服务器上部署了我的项目,当我尝试插入具有继承的类时出现错误“SQLSTATE [23000]:完整性约束违规:1452 无法添加或更新子行:外键约束失败”:
/**
* @ORM\Table(name="prosante")
* @ORM\Entity
*/
class ProSante extends Base
{
/**
* @ORM\Column(type="string")
*/
protected $firstName;
}
/**
* @ORM\Table(name="base")
* @ORM\Entity(repositoryClass="Test\MyBundle\Entity\BaseRepository")
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="discr", type="string")
* @ORM\DiscriminatorMap({"base" = "Base",
* "prosante" = "ProSante",
* "pharmacie" = "Pharmacie"})
*/
abstract class Base
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
}
日志 :
[2012-06-11 15:42:46] doctrine.DEBUG: INSERT INTO base (name) VALUES (?) ({"1":"Blabla"}) [] []
[2012-06-11 15:42:46] doctrine.DEBUG: INSERT INTO prosante (id, firstname) VALUES (?, ?) ({"1":"0","2":"PATRICK"}) [] []
我不知道该怎么做,因为当我在本地主机上执行相同的 INSERT 时错误不会出现。
编辑 我检查“SELECT LAST_INSERT_ID();” 在我的数据库中手动插入一个新的“基础”后,它不返回 0,我不明白。
解决方案这是一个驱动程序问题,我改变它并且它工作。