Mysql
 sql >> Database >  >> RDS >> Mysql

Migrazione Laravel (errno:150 Il vincolo della chiave esterna è formato in modo errato)

Poiché increments() crea una colonna intera senza segno, è necessario definire anche la colonna della chiave esterna come intero senza segno.

Le migrazioni predefinite in Laravel 6+ utilizzano bigIncrements() , quindi devi usare unsignedBigInteger() metodo:

$table->unsignedBigInteger('order_id');

https://laravel.com/docs/6.x/migrations #vincoli-chiave-estranea

Per le migrazioni predefinite nelle versioni precedenti di Laravel, utilizzare unsignedInteger() metodo:

$table->unsignedInteger('order_id');

Oppure:

$table->integer('order_id')->unsigned();

https://laravel.com/docs/5.5/migrations#foreign-key -vincoli