2017-02-12 8 views
0

ich eine Migration für meine Tags Tabelle wie die unten haben:Kann nicht Fremdschlüssel in Laravel Fehler hinzufügen

Schema::create('tags', function (Blueprint $table) { 
      $table->increments('id'); 
      $table->char('tag' , 15); 
}); 

Nun, ich habe die folgende Migration für meine admin Tabelle, in der ich einen Fremdschlüssel haben im Zusammenhang mit meine tags Tabelle, ist die Migration der folgende:

Schema::create('admin', function (Blueprint $table) { 
    $table->char('tag' , 15); 
    $table->foreign('tag')->references('tag')->on('tags'); 
}); 

Jetzt, als ich diese Migration ich folgende Fehlermeldung erhalten, laufen:

enter image description here

Beide Tabellen sind innodb Ich habe dies in den Einstellungen in Laravel geändert. Aber ich kann immer noch keinen Fremdschlüssel-Constraint-Fehler hinzufügen. Warum ??

+0

[Diese SO Antwort] (https://stackoverflow.com/questions/22615926/migration-cannot-add-foreign-key-constraint-in-laravel) adressiert Ihre Bedenken. –

+0

Warum referenzieren Sie nicht die ID-Spalte anstelle der Tag-Spalte selbst? Wie auch immer, ist die Datenbank sauber? Weil dieser Fehler auftritt, wenn die Datenbank durch das Erstellen des Fremdschlüssels ihre Integrität verliert, so dass der fk nicht erstellt werden kann. –

+0

@DamianSimonPeter versuchte das appraoch .. funktioniert nicht, hatte diesen Thread gesehen! –

Antwort

0

Versuchen

$table->foreign('tag')->references('id')->on('tags'); 

Da in tags Tabelle, der Primärschlüssel ist id.

Verwandte Themen