2017-05-06 6 views
0

Ich versuche, die Tabellen "Teams" und "Wettbewerbe" in Laravel zu erstellen, aber wenn ich den Befehl migrieren, bekomme ich Folgendes: Fehlernummer: 150 "Fremdschlüssel Einschränkung ist falsch gebildet "Laravel - Fremdschlüssel-Constraint ist falsch gebildet

Schema::create('competitions', function (Blueprint $table) { 
        $table->increments('id'); 
        $table->string('name')->unique(); 
        $table->string('team_name'); 
        $table->foreign('team_name')->references('name')->on('teams')->onDelete('cascade'); 
        $table->timestamps(); 
     }); 

Schema::create('teams', function (Blueprint $table) { 
        $table->increments('id'); 
        $table->string('name')->unique(); 
        $table->string('place'); 
        $table->string('competition')->nullable();; 
        $table->foreign('competition')->references('name')->on('competitions')->onDelete('set null'); 
        $table->timestamps(); 
}); 

Antwort

0

Ich denke, das ist wegen Ihrer ->onDelete('set null') Klausel. Dies wird versuchen, das Namensfeld in der Wettbewerbstabelle auf null zu setzen, wenn Sie das Team löschen. Sie können das wahrscheinlich einfach entfernen.

+0

Nö nicht funktioniert, immer noch der gleiche Fehler – jordibenck

0

müssen Sie gleichen Eigenschaften verwenden für Primärschlüssel und Fremdschlüssel

zB. beide hatten -> nullable() oder nicht.

Stellen Sie außerdem sicher, dass die Sortierung für zwei Tabellen und ihre Spalten identisch ist.

Verwandte Themen