1

我有两张桌子,这两张有关系

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。

有什么好的方法可以同时删除吗?

我有两个写删除句子每个?

4

1 回答 1

3

对于您的FOREIGN KEY关系,添加 ON UPDATE CASCADE
然后你就可以根据你的需要删除了。
当您删除父级时,更改将自动反映给子级。

于 2013-10-07T13:28:49.707 回答