私はLaravelを初めて使っています。以前はテーブルusers
を作成しました。 employment
移行でテーブルが作成されました。次回のマイグレーションとして、users
テーブルをjob_id
に追加してemployment
テーブルにusers
テーブルを追加しました。移行を実行すると、上記のエラーが発生します。(errno:150 "外部キー制約が正しく形成されていません")
注:job_id
をemployment
に、users
をjob_id
と表記する必要があります。 soumyaは私のデータベース名
外部キー制約なしで移行を実行すると、完全に機能します。
Migations:雇用テーブル
public function up()
{
Schema::create('employment', function (Blueprint $table) {
$table->increments('job_id');
$table->string('job_title');
$table->string('job_description')->nullable()->default(NULL);
$table->string('slug')->unique();
$table->timestamps();
});
}
public function down()
{
Schema::drop('employment');
}
移行変更users
テーブル
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->integer('job_id')->after('deleted');
$table->foreign('job_id')->references('job_id')->on('employment');
});
}
public function down()
{
Schema::table('users', function (Blueprint $table) {
$table->dropForeign('users_job_id_foreign');
$table->dropColumn('job_id');
});
}
はmysqlのエラー原因を得た後にエラーが、PHPもlaravel、https://stackoverflow.com/search?q=Foreign+key+constraint+is+incorrectly+formedしない、MySQLへの純粋に関連していますPHP側の編集は、ケーキの平和になります。 – hassan
[Migration:laravelに外部キー制約を追加できません](https://stackoverflow.com/questions/22615926/migration-cannot-add-foreign-key-constraint-in-laravel) – hassan
この複製を変更してください。 – Maraboc