Laravel-Migration, die auf das Fremdschlüsselproblem verweist

8

Hi Ich habe ein Problem beim Erstellen einer Tabelle mit dem Migrationsschema-Builder. Das Problem tritt bei einer Tabelle mit einem sich selbst referenzierenden Fremdschlüssel auf. Hier ist der Code, der einen Fehler erzeugt:

%Vor%

Hier ist der Fehler:

%Vor%

gory add constraint cb_category_parent_id_foreign foreign key ( übergeordnete_id ) references cb_category ( id ') auf del   Kaskade auf Update-Kaskade) (Bindings: array (   ))

[PDOException]   SQLSTATE [HY000]: Allgemeiner Fehler: 1005 Tabelle kann nicht erstellt werden 'eklik2. # Sql-7d4_e' (errno: 150)

Irgendeine Idee?

    
gandra404 25.08.2013, 09:10
quelle

3 Antworten

5

Sie müssen dies in zwei Schemablöcke aufteilen, von denen der eine die Spalten erzeugt und der andere die FKs hinzufügt. mysql kann nicht beides gleichzeitig tun.

    
Meroje 25.08.2013, 09:17
quelle
2

Ich bin vielleicht zu spät für die Party, aber die offiziellen Dokumente behaupten, dass der Fremdschlüssel im Fall von Ganzzahl ->unsigned();

sein muss

Ссылка

  

Hinweis: Beim Erstellen eines Fremdschlüssels, der auf ein Inkrementieren verweist   Ganzzahl, denken Sie daran, die Fremdschlüsselspalte immer vorzeichenlos zu machen.

Auch Artisan scheitert nicht, wenn Sie (wie ich) misspell unsigned() geschrieben haben und ich habe einige Stunden damit verbracht, herauszufinden, warum der Schlüssel nicht erstellt wurde.

Also zwei Dinge: 1. Lassen Sie die Fremdschlüsselspalte im Falle von Ganzzahlen immer vorzeichenlos 2. Überprüfen Sie die Schreibweise von unsigned()

    
ioni 15.11.2014 05:53
quelle
1
%Vor%

Versuchen Sie es

    
krunal nerikar 26.04.2016 12:43
quelle