【问题标题】:Laravel General error: 1005 Can't create tableLaravel 一般错误:1005 无法创建表
【发布时间】:2019-11-14 10:38:17
【问题描述】:

我在执行 php artisan 迁移时收到此错误。我的迁移文件有问题吗?

Illuminate\Database\QueryException : SQLSTATE[HY000]: 一般错误: 1005 无法创建表test.blog_posts (errno: 150 "外键 约束格式不正确”)(SQL:alter table blog_posts add 约束blog_pos ts_user_id_foreign外键(user_id) 参考users (id))

blog_posts

        $table->increments('id');
        $table->integer('cаtegory_id')->unsigned();
        $table->integer('user_id')->unsigned();
        $table->string('slug')->unique();
        $table->string('title');
        $table->text('excerpt')->nullable(); դաշտ չի
        $table->text('content_raw');
        $table->text('content_html');
        $table->boolean('is_published')->default(false);
        $table->timestamp('published_at')->nullable();
        $table->timestamps();
        $table->softDeletes(); 
        $table->foreign('user_id')->references('id')->on('users');
        $table->foreign('cаtegory_id')->references('id')->on('blog_categories');
        $table->index('is_published');

blog_categories

    $table->increments('id');
    $table->integer('parent_id')->unsigned()->default(0); 
    $table->string('slug')->unique();
    $table->string('title');
    $table->text('description')->unllable(); 
    $table->timestamps(); 
    $table->softDeletes();

用户

        $table->bigIncrements('id');
        $table->string('name');
        $table->string('email')->unique();
        $table->timestamp('email_verified_at')->nullable();
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();

【问题讨论】:

    标签: php laravel foreign-keys migration laravel-migrations


    【解决方案1】:

    您需要将用户表中的列类型和格式匹配到 FK。但您首先需要在 blog_posts 表上实际创建列,从中绘制 FK 以完全匹配您在 users 表上的内容

    $table->foreign('user_id')->references('id')->on('users');
    

    是 FK 指令,但在此之前,您需要添加实际列以匹配用户表。 Nullable 是可选的,具体取决于您要如何进行:

    $table->bigInteger('user_id')->unsigned()->nullable();
    

    【讨论】:

      猜你喜欢
      • 2021-09-20
      • 2016-07-26
      • 2021-03-20
      • 2014-01-26
      • 2019-06-14
      • 1970-01-01
      • 2019-11-21
      • 2020-01-15
      • 1970-01-01
      相关资源
      最近更新 更多