РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
364 of 1392 menu

Метод disableForeignKeyConstraints

Метод disableForeignKeyConstraints применяется к объекту Schema и отключает проверку внешних ключей в текущем сеансе работы с базой данных. Это может быть полезно при выполнении миграций, которые затрагивают таблицы с внешними ключами, или при массовых операциях вставки и обновления данных. Метод не принимает никаких параметров и возвращает void.

Синтаксис

<?php use Illuminate\Support\Facades\Schema; Schema::disableForeignKeyConstraints(); ?>

Пример

Давайте отключим проверку внешних ключей перед удалением таблицы, которая ссылается на другие таблицы:

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up() { Schema::disableForeignKeyConstraints(); Schema::dropIfExists('posts'); Schema::enableForeignKeyConstraints(); } }; ?>

Результат выполнения кода:

"Table posts dropped successfully"

Пример

Давайте используем метод для массовой вставки записей в таблицу с внешними ключами:

<?php use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Schema; $res = null; Schema::disableForeignKeyConstraints(); DB::table('posts')->truncate(); for ($i = 1; $i <= 5; $i++) { DB::table('posts')->insert([ 'title' => 'Post ' . $i, 'user_id' => $i, ]); } $res = DB::table('posts')->count(); Schema::enableForeignKeyConstraints(); echo $res; ?>

Результат выполнения кода:

"5"

Пример

Рассмотрим использование метода в миграции при изменении структуры таблицы с внешними ключами:

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up() { Schema::disableForeignKeyConstraints(); Schema::table('posts', function (Blueprint $table) { $table->dropForeign(['user_id']); $table->dropColumn('user_id'); $table->foreignId('author_id')->constrained('users'); }); Schema::enableForeignKeyConstraints(); } }; ?>

Результат выполнения кода:

"Posts table updated successfully"

Смотрите также

  • метод enableForeignKeyConstraints,
    который включает проверку внешних ключей
  • класс Schema,
    который предоставляет методы для работы со схемой базы данных
  • метод drop,
    который удаляет таблицу из базы данных
  • метод table,
    который позволяет изменять существующую таблицу
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить