提问者:小点点

SQLSTATE[23000]:无法在对象中插入重复的键行


当我试图向SQLServer数据库中插入新列时,出现以下错误。

SQLSTATE[23000]:[Microsoft][ODBC驱动程序17 for SQL Server][SQL Server]无法在对象“dbo”中插入重复的键行。具有唯一索引“users\u api\u token\u unique”的用户。重复的键值为()。(SQL:插入[用户]([姓名],[电子邮件],[密码],[更新地址],[创建地址])值(伊布拉明·萨拉赫,ibra@gmail.com,$2y$10$laopDTNj9Ddzr4cf4a4ctuxYwra5raqm8TXXBS。Rc2wBH2mnf。《中国日报》,2020-08-07 08:57:49.077200-08-07 08:57:49.077)

表模式

Schema::create('users', function (Blueprint $table) {
    $table->bigIncrements('id');
    $table->string('name');
    $table->string('email')->unique();
    $table->timestamp('email_verified_at')->nullable();
    $table->string('password');
    $table->boolean('adminCreation')->default(0);
    $table->rememberToken();
    $table->timestamps();
});

我使用的是Laravel5.8和PHP版本7.4。4.


共1个答案

匿名用户

您正在尝试将新记录/行插入到电子邮件上具有唯一约束(从而创建唯一索引)的表中。

由于这似乎是唯一约束中包含的唯一列,这意味着某个电子邮件值只能在表中插入一次。否则,它将不是此列的唯一值。

从表列名来看,这看起来像是某种用户注册,这似乎是需要的行为。这意味着您的数据库中可能只有一些需要清除的测试数据。或者在开发过程中暂时删除唯一约束,或者继续创建新的电子邮件值。