Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Laravel nie może usunąć ani zaktualizować wiersza nadrzędnego:ograniczenie klucza obcego nie powiodło się

Tak, to twój schemat. Ograniczenie likes.post_id uniemożliwi usuwanie rekordów z posts tabela.

Jednym z rozwiązań może być użycie onDelete('cascade') w likes plik migracji:

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

W ten sposób, gdy post zostanie usunięty, wszystkie powiązane polubienia również zostaną usunięte.

Lub, jeśli masz relację z modelu Post do modelu Like, możesz $post->likes()->delete() przed usunięciem samego posta.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Optymalizacja wydajności MySQL:kolejność według pola daty i godziny

  2. SQL UPDATE wszystkie wartości w polu z dołączonym ciągiem CONCAT nie działa

  3. Uzyskaj wyniki zapytania MySQL jako ich natywny typ danych?

  4. Zapytanie SQL:usunąć wszystkie rekordy z tabeli z wyjątkiem ostatniego N?

  5. mysql połączone unikalne klucze