Laravel:格式不正确中的外键约束

Laravel:格式不正确中的外键约束,laravel,Laravel,我认为我写的一切都是正确的。当我运行“php artisan migrate”命令时,会出现异常。我在stackoverflow中浏览了所有相关文章。但我没有得到任何解决方案 [例外情况] SQLSTATE[HY000]:一般错误:1005无法创建表laravel\u作业\sql- ec4_170(错误号:150“外键约束格式不正确”)您应该在创建表后创建外键。像这样: public function up() { Schema::enableForeignKeyCon

我认为我写的一切都是正确的。当我运行“php artisan migrate”命令时,会出现异常。我在stackoverflow中浏览了所有相关文章。但我没有得到任何解决方案

[例外情况] SQLSTATE[HY000]:一般错误:1005无法创建表
laravel\u作业
\sql-

ec4_170
(错误号:150“外键约束格式不正确”)

您应该在创建表后创建外键。像这样:

public function up()
    {
        Schema::enableForeignKeyConstraints();

        Schema::create('user', function (Blueprint $table) {
            $table->engine = 'InnoDB';
            $table->uuid('id');
            $table->primary('id');
            $table->string('class_code');
            $table->string('username')->nullable();
            $table->string('email_address')->nullable();
            $table->uuid('contact_id')->nullable();
            $table->uuid('customer_id')->nullable();
            $table->char('password_hash', 64)->nullable();
            $table->boolean('active')->nullable();
            $table->string('remember_token', 100)->nullable();
            $table->timestamps();
        });

        Schema::table('user', function(Blueprint $table) {
            $table->foreign('contact_id')->references('id')->on('contact')->onDelete('cascade')->onUpdate('cascade');
            $table->foreign('customer_id')->references('id')->on('customer')->onDelete('cascade')->onUpdate('cascade');
        });
    }

但是,您可能需要确保迁移的运行顺序是正确的。因此,您可能希望create table函数创建可为空的外键。

您应该在创建表之后创建外键。像这样:

public function up()
    {
        Schema::enableForeignKeyConstraints();

        Schema::create('user', function (Blueprint $table) {
            $table->engine = 'InnoDB';
            $table->uuid('id');
            $table->primary('id');
            $table->string('class_code');
            $table->string('username')->nullable();
            $table->string('email_address')->nullable();
            $table->uuid('contact_id')->nullable();
            $table->uuid('customer_id')->nullable();
            $table->char('password_hash', 64)->nullable();
            $table->boolean('active')->nullable();
            $table->string('remember_token', 100)->nullable();
            $table->timestamps();
        });

        Schema::table('user', function(Blueprint $table) {
            $table->foreign('contact_id')->references('id')->on('contact')->onDelete('cascade')->onUpdate('cascade');
            $table->foreign('customer_id')->references('id')->on('customer')->onDelete('cascade')->onUpdate('cascade');
        });
    }

但是,您可能需要确保迁移的运行顺序是正确的。因此,您可能希望create table函数创建可为空的外键。

错误:
无法创建表laravel\u作业


因此,我认为问题不在于
恢复
表迁移。

错误:
无法创建表laravel\u作业


因此,我认为问题不在于
恢复
表迁移。

我认为您需要更新迁移代码,如:

Schema::create('resume', function (Blueprint $table) {
            $table->engine = 'InnoDB';
            $table->increments('id')->unsigned()->index();
            $table->integer('user_id')->unsigned();
            $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
            $table->timestamp();
});

希望这项工作为你

我认为您需要更新迁移代码,如:

Schema::create('resume', function (Blueprint $table) {
            $table->engine = 'InnoDB';
            $table->increments('id')->unsigned()->index();
            $table->integer('user_id')->unsigned();
            $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
            $table->timestamp();
});

希望这项工作为你

检查以下术语:

1. The datatype of id column on users table and user_id on resume table are same.
2. If id is unsigned integer or big integer then user_id will be unsigned 
   integer or big integer.
3. Length of id on users table and user_id on resume table will be same.

希望这能解决您的问题。

检查以下条款:

1. The datatype of id column on users table and user_id on resume table are same.
2. If id is unsigned integer or big integer then user_id will be unsigned 
   integer or big integer.
3. Length of id on users table and user_id on resume table will be same.

希望这能解决您的问题。

什么是存储引擎<代码>myISAM
INNODB
?因为myISAM不支持外键约束。什么是存储引擎<代码>myISAM
INNODB
?因为myISAM不支持外键约束。