sql >> Database >  >> RDS >> Mysql

Laravel-migratie - schending van integriteitsbeperking:1452 Kan een onderliggende rij niet toevoegen of bijwerken:een externe-sleutelbeperking mislukt

Ik had hetzelfde probleem. Repareerde het door nullable toe te voegen naar veld:

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

Merk op dat na de migratie alle bestaande rijen some_id = NULL . zullen hebben .

UPD :

Sinds Laravel 7 is er een kortere manier om hetzelfde te doen:

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

Het is ook erg belangrijk dat nullable gaat VOORDAT constrained .

Meer info vind je hier, in officiële documentatie



  1. ERROR 1030 (HY000) op regel 25:kreeg fout 168 van opslagengine

  2. Een inconsistente PostgreSQL-slave opnieuw opbouwen

  3. Gegevens opslaan in de onDestroy-methode van activiteit

  4. Oracle 12c Installation heeft geen toegang tot de tijdelijke locatie