Bonjour,
Je suppose que cette erreur a été rencontré par d'autres personnes mainte fois, néanmois je n'ai pas trouvé la solution sur Internet.
J'essaie de créer deux clés étrangères mais cela ne fonctionne pas. J'ai l'impression que déja, il ne me crée pas d'index alors que je lui demande de le faire
Voici mon code
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateStudentsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('students', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->increments('id');
$table->string('first_name', 75);
$table->string('last_name', 75);
$table->integer('user_id')->index()->unsigned();
$table->integer('class_id')->nullable()->index()->unsigned();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->foreign('class_id')->references('id')->on('classes')->onDelete('set null');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('students');
}
}
Et l'erreur, c'est tout simplement :
Impossible d'ajouter des contraintes d'index (SQL : Alter table 'students' add_constraint 'students_user_id_foreign' foreign key ('user_id') references 'users' ('id') on delete cascade)
Comme dit plus haut, j'ai l'impression qu'il ne me génère pas d'index. Lorsque le script est executé, les champs sont crées mais pas les index. Du coup la contrainte, j'ai pas l'impression qu'il puisse la faire.