1

私には2つのテーブルがあり、これら2つは次のような関係にあります

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;

これら 2 つのテーブルの関係は次のとおりです。

Lesson の行が存在する場合、ticketUse の行が存在するか、または存在しません。

レッスンの行と常に組み合わせを持つ ticketUse の行が存在する場合。

レッスン行「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も削除したいです。

両方を一緒に削除する良い方法はありますか?

それぞれに2つの書き込み削除文がありますか?

4

1 に答える 1

3

FOREIGN KEY関係については、 ON UPDATE CASCADEを追加します。
その後、必要に応じて削除できます。
親を削除すると、変更は自動的に子に反映されます。

于 2013-10-07T13:28:49.707 に答える