テーブルを作成して外部キーを追加しようとしていますが、外部キーは追加しません。主キーを持っていない一般的なエラー:1005テーブルを作成できません - Laravel 4.2は外部キーを作成できません
public function up()
{
Schema::create('forms', function(Blueprint $table)
{
$table->engine = 'InnoDB';
$table->string('id')->nullable();
$table->string('url', 100);
$table->string('title', 100);
$table->timestamps();
});
Schema::table('forms', function(Blueprint $table)
{
$table->foreign('id')->references('id')->on('pages');
});
}
マイテーブルforms
:
[Illuminate\Database\QueryException] SQLSTATE[HY000]: General error: 1005 Can't create table 'myDB.#sql -4b4_1a5e43' (errno: 150) (SQL: alter table
フォームadd constr aint forms_id_foreign foreign key (
ID ) references
ページ(
id`))
私の移行は以下のようになります。私は、このエラーメッセージが表示されました。外部キー参照id
がpages
テーブルにあるid
の列である必要があります。
私はその問題を検索しid
列および移行が、まだありません結果に
$table->engine = 'InnoDB';
にnullable()
を追加しました。
どこが間違っていますか?ありがとう。
ページテーブルは存在しません。しかし今、 'forms'テーブルを作成する必要があります。' forms'テーブルに似た2つのテーブルがあり、同じカラム構造を持つべきであるため、このカラム名は 'id'でなければなりません。 id' –
@mistery_girl両方のページで質問を編集して移行を行うことはできますか?私は答えを – aimme
更新しました。私の質問では、 'forms'テーブルのための移行を追加しましたが、' pages'テーブルのための移行はありません。プロジェクトが開始されたときに移行せずに作成されました。今作成する方法がわかりません。 –