Laravel 4 Migration Fehler - schafft zwei auto_increment-Primärschlüssel-Felder
Machte ich eine migration mit diesem setup:
$table->increments('id');
$table->integer('user_id', 10)->unsigned(); //this is meant to be used as a foreign key
Nachdem ich php artisan migrate gibt es einen Fehler:
[Exception]
SQLSTATE[42000]: Syntax error or access violation: 1075 Incorrect table definition;
there can be only one auto column and it must be defined as a key (SQL: create table `transactions` (`id` int unsigned not null auto_increment primary key, `user_id` int unsigned not null auto_increment primary key) default character set utf8 collate utf8_unicode_ci) (Bindings: array ())
Ich nicht angeben, user_id, um ein auto_increment primary key, aber Migration behandelt es als so.
Wie kann ich einen foreign key in Migrationen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
@crynobone: Zweite parameter sind für boolean verwenden, um zu bestimmen, primary key, es gibt keine Länge-option für Ganzzahl.
Finden Sie hier: https://github.com/laravel/laravel/issues/2212#issuecomment-21608193
In Laravel 4 , der zweite parameter in integer-Funktion ist für die Angabe der integer-Spalte werden automatisch inkrementiert werden, oder nicht ( und somit auch primary key oder nicht )
In meinem Fall , um eine automatische Inkrementierung-id in eine Tabelle Schreibe ich es so,
Schafft es eine integer-Spalte mit 11 stellen .
Warum nicht geben Sie
user_id
als primary key mit autoincrement?Schema builder erstellen
user_id
, die 10 Ziffern lang, unsigned & primary key.