MySQL удаляет записи с кросс-внешними ключами

Я сомневаюсь. У меня есть две таблицы InnoDB в MySQL, это их сущности:

class Account
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;

/**
* one account is created by one user
*
* @ORM\ManyToOne(targetEntity="User")
* @ORM\JoinColumn(name="createdby", referencedColumnName="id", onDelete="CASCADE")
*/
private $createdby;
.
.
.

А также

class User
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;

/**
*  Many Users belong to One Account
*
* @ORM\ManyToOne(targetEntity="Account", inversedBy="users")
* @ORM\JoinColumn(name="account", referencedColumnName="id")
*/
private $account;

Таким образом, существует два разных отношения: одно — «учетная запись, созданная пользователем», а другое — «пользователь принадлежит учетной записи».

Когда я пытаюсь удалить учетную запись (например, УДАЛИТЬ ИЗ УЧЕТНОЙ ЗАПИСИ, ГДЕ id = 28), я хотел бы также удалить пользователя, который создал учетную запись. Я не говорю, чтобы удалить пользователя, который принадлежит к этой учетной записи, просто тот, кто его создал. Но это дает мне ошибку ограничения внешнего ключа:

Неустранимая ошибка: Uncaught PDOException: SQLSTATE [23000]: Нарушение ограничения целостности: 1451 Невозможно удалить или обновить родительскую строку: сбой ограничения внешнего ключа (example,user, ОГРАНИЧЕНИЕ FK_8D93D6497D3656A4 ИНОСТРАННЫЙ КЛЮЧ (account) РЕКОМЕНДАЦИИ account (id)) в …

Любой совет?

Благодарю.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector