Mysql
 sql >> база данни >  >> RDS >> Mysql

Миграция на Laravel – нарушение на ограничението за целостта:1452 Не може да се добави или актуализира дъщерен ред:ограничение за външен ключ не успява

Имах същия проблем. Поправен е чрез добавяне на nullable към полето:

Schema::create('table_name', function (Blueprint $table) {
    ...
    $table->integer('some_id')->unsigned()->nullable();
    $table->foreign('some_id')->references('id')->on('other_table');
    ...
});

Имайте предвид, че след миграцията всички съществуващи редове ще имат some_id = NULL .

UPD :

От Laravel 7 има по-кратък начин да направите същото:

$table->foreignId('some_id')->nullable()->constrained();

Също така е много важно nullable отива ПРЕДИ constrained .

Повече информация можете да намерите тук, в официалната документация



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създайте PHP масив от MySQL колона

  2. mysql, транспониране/завъртане на ред в колона, избор на променлива

  3. Онлайн надстройка на схемата в MySQL Galera Cluster с помощта на RSU метод

  4. как да се преодолее ГРЕШКА 1045 (28000):Достъпът е отказан за потребител 'ODBC'@'localhost' (използвайки парола:НЕ) за постоянно

  5. Импортирайте CSV или XML в MySQL