完整性约束违反



我正在使用Laravel 9来设置我的迁移,但我一直得到这个错误Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails我已经查了这个,我很困惑,因为我的user_id在表url中引用了用户表上的id列?

我还确保我在我的url.php模型中保护了user_id的可填充性,我认为这是对类似问题的回答。

public function up()
{
Schema::create('urls', function (Blueprint $table) {
$table->id();
$table->text('full_url');
$table->string('short_url')->unique();
$table->foreignId('user_id')->constrained();
$table->timestamps();
});
}
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}

外键约束是用于确保数据完整性的机制之一。在这种情况下,这意味着您要插入的外键必须在关联的外表中具有对应关系。

让我举个例子。假设你有一个posts表,它有一个user_id外键。然后在users表中,您有以下id:1,2,34。如果您尝试插入/更新一个帖子,提供的user_id必须存在于users表中。因此,这意味着如果您试图插入7user_id的新帖子,它将失败,因为users表中没有7id

最新更新