こんにちは私は移行スキーマビルダーを使用してテーブルを作成する問題があります。 自己参照外部キーを持つテーブルで問題が発生します。ここ がエラーを生成するコードである:ここLaravel移行自己参照外部キーの問題
Schema::create('cb_category', function($table)
{
$table->integer('id')->primary()->unique()->unsigned();
$table->integer('domain_id')->unsigned();
$table->foreign('domain_id')->references('id')->on('cb_domain');
$table->integer('parent_id')->nullable();
$table->foreign('parent_id')->references('id')->on('cb_category')->onUpdate('cascade')->onDelete('cascade');
$table->string('name');
$table->integer('level');
});
がエラーである:
SQLSTATE[HY000]: General error: 1005 Can't create table 'eklik2.#sql-7d4_e' (errno: 150) (SQL: alter table `cb_cate
血みどろadd constraint cb_category_parent_id_foreign foreign key (
PARENT_ID ) references
cb_category (
id`)デル ETEカスケード更新カスケード上に)(バインディング:配列( ))
[PDOException] SQLSTATE [HY000]:一般的なエラー:1005テーブル 'eklik2を作成できません。# sql-7d4_e '(errno:150)
ご存知ですか?
を試してみてくださいインクリメント整数の場合には、外部キー列が符号なしにしますとにかく、エラーは残ります: スキーマ:: create(...); onUpdate( 'cascade(' cb_category ')) - >(' cb_category ') - >参照(' id ') - >参照') - > onDelete(' cascade '); }); – gandra404
破損して解決。コードは次のとおりです。 Schema :: create( 'cb_category'、function($ table){...}); $ dbh = DB :: getPdo(); $ dbh-> query( "ALTER TABLE cb_category ADD CONSTRAINT fk_cb_category_parent_id FOREIGN KEY(parent_id)参照cb_category(id)NO UPDATE NO ACTIONにアクションを削除しないでください"); – gandra404