sql >> Database >  >> RDS >> Mysql

Laravel Kan een bovenliggende rij niet verwijderen of bijwerken:een beperking van een externe sleutel mislukt

Ja, het is jouw schema. De beperking op likes.post_id voorkomt dat u records verwijdert uit de posts tafel.

Een oplossing zou het gebruik van onDelete('cascade') . kunnen zijn in de likes migratiebestand:

Schema::create('likes', function (Blueprint $table) {
    $table->integer('post_id')->unsigned();
    $table->foreign('post_id')->references('id')->on('posts')->onDelete('cascade');
});

Op deze manier worden alle gerelateerde likes ook verwijderd wanneer een bericht wordt verwijderd.

Of, als je een relatie hebt van het Post-model naar het Like-model, kun je $post->likes()->delete() voordat het bericht zelf wordt verwijderd.



  1. Wat is databasetesten en hoe voer je het uit?

  2. Verticale randen toevoegen aan uw SQL*Plus / SQLcl-uitvoerraster

  3. Herstelmodel voor SQL Server-wijziging

  4. Oracle-query sequentiële sommatie per rijen