SQLSTATE[HY000]:一般错误:1005 无法创建表`ic`.`livros`(errno: 150 "外键约束的格式不正确") id`)))

时间:2021-07-14 17:21:18

标签: php mysql laravel laravel-8

我想从表“users”创建带有外键“users_id”的表“livros”,但我无法迁移。

表格:

public function up()
    {
        Schema::create('livros', function (Blueprint $table) {
            $table->id();
 
            $table->integer('users_id');
            $table->foreign('users_id')->references('id')->on('users');
            /*Auth::user()->id;*/

            $table->text('namel');
            $table->string('autor');
            $table->string('editora');
            $table->string('categoria');
            $table->string('classificação');
            $table->text('descricao');
            $table->string('image')->nullable();
            $table->timestamp('created_at')->nullable();
            $table->timestamp('updated_at')->nullable();


        });
    } 

1 个答案:

答案 0 :(得分:1)

您的外键需要与您的父键类型相同,users$table->id(); 中的父键是一个无符号大整数,因此您的外键也要同类型,改:

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

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

或者,使用 foreignId

$table->foreignId('user_id')->constrained();