Как получить ошибку базы данных, когда я пытаюсь удалить строку, которая имеет свой ключ как внешний ключ в другой таблице? - PullRequest
0 голосов
/ 07 мая 2018

(каркас Laravel)

Как создать таблицы в базе данных с миграциями, поэтому, когда я пытаюсь удалить строку из таблицы, чей ключ является внешним ключом где-то в другой таблице, я получаю сообщение об ошибке из базы данных, не позволяющее мне это сделать?

Должен ли я создавать отношения в миграциях, когда я говорю, какие внешние ключи есть в моей базе данных, или есть другой способ, использующий только модели Laravel.

Я новичок в этом. Спасибо.

1 Ответ

0 голосов
/ 07 мая 2018

Вам необходимо удалить деактивировать проверку внешнего ключа, так что я использую следующую функцию для этого. Сначала я устанавливаю проверку внешнего ключа на 0, затем обрезаю таблицу и возвращаю ее обратно 1. Установка проверки внешнего ключа на 0 позволяет обрезать таблицу, даже если есть внешние ключи.

# functions to truncate users table even if there are foreign key
public static function truncateUserTable()
{
    DB::statement('SET FOREIGN_KEY_CHECKS=0');
    User::query()->truncate();
    DB::statement('SET FOREIGN_KEY_CHECKS=1');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...