我有两个表,这两个表有关系,如
class Lesson
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
class TicketUse
{
/**
*
* @ORM\ManyToOne(targetEntity="Acme\UserBundle\Entity\Lesson")
* @ORM\JoinColumn(name="lessonId", referencedColumnName="id")
*/
private $lessonId;
这两个表的关系是。
如果Lesson中存在一行,则ticketUse中的一行存在或不存在。
如果存在ticketUse中的一行,该行始终与Lesson中的行组合。
当我尝试删除课程行'DELETE FROM Lesson WHERE id = 1'
时显示错误。
SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails
我想在删除课程时自动删除TicketUse。
有没有很好的方法可以同时删除它们?
我每个都有两个写删除句子?
答案 0 :(得分:3)
对于 FOREIGN KEY 关系,添加ON UPDATE CASCADE 。
然后你就可以根据自己的需要删除了
当您删除父级时,更改将自动反映给孩子。