Hier ist das Problem. Ich hämmere mir jetzt stundenlang den Kopf. Laravel erlaubt mir nicht, einen Primärschlüssel zu haben (es sagt viel, aber Sie können sehen, dass es nur einen hat). Und weiter mehr, weil es ein Problem gibt, das im Primärschlüssel in der Lehrertabelle verursacht. Ich kann das nicht als Fremdschlüssel in der Kurstabelle verwenden.Mehrere Primärschlüssel gefunden Problem Laravel
Migration Datei für die Lehrertisch
class CreateTeachersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('teachers', function (Blueprint $table) {
$table->increments('teacher_id')->primary();
$table->string('email', 200);
$table->string('first_name',300)->nullable();
$table->string('last_name',300)->nullable();
$table->string('account_status',50)->default('inactive');
$table->string('subscription_status',50);
$table->string('account_reset_code',400)->nullable();
$table->string('passkey',500);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('teachers');
}
}
Migrationsdatei für Kurse Tabelle
class CreateCoursesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('courses', function (Blueprint $table) {
$table->increments('course_id')->primary();
$table->integer('teacher_id_fr');
$table->string('course_name', 500);
$table->string('course_code',300);
$table->string('subject_area',300);
$table->string('course_level',100);;
$table->string('grade_periods',100);
$table->timestamps();
});
Schema::table('courses',function(Blueprint $table){
$table->foreign('teacher_id_fr')->references('teacher_id')->on('teachers')->onDelete('cascade')->onUpdate('cascade');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('courses');
}
}
Ausgabe auf
Migration angehobenSyntax Fehler oder Zugriffsverletzung. 1068 Mehrere Primärschlüssel gefunden
.
Was ich jetzt
1) versucht haben machen die primäre Spalte unsigned Methode ohne Vorzeichen verwenden.
2) mit InnnoDB-Motortyp für Tabelle.
3) Und viele andere Dinge wie für ähnliche Beiträge in den Foren vorgeschlagen, aber nichts scheint für mich zu arbeiten.
EDIT
ich den primären() -Methode von beiden Dateien auf Tabellen- $ entfernt habe> Schritte ('teacher_id'). Wie dies gesagt wird, markiert Laravel auto-increments-Spalten als Primärschlüssel.
Aber jetzt ist der Fehler auf Kurse Tabelle wie es sagt.
Allgemeiner Fehler: 1215 nicht über Fremdschlüssel
hinzufügen
Welche Migrationsdatei generiert den Fehler? – jaysingkar
Dank @jaysingkar für Ihre Zeit, Lehrer-Datei. –