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

当我尝试将新列插入 SQL Server 数据库时,出现以下错误。

SQLSTATE[23000]:[Microsoft][SQL Server 的 ODBC 驱动程序 17][SQL Server]无法在具有唯一索引“users_api_token_unique”的对象“dbo.users”中插入重复的键行。重复的键值为()。(SQL:插入[用户]([名称]、[电子邮件]、[密码]、[updated_at]、[created_at])值(ibramin salah、ibra@gmail.com、$2y$10$laopDTNj9Ddzr4cf4a4ctuxYwra5raqm8TXXBS.Rc2wBH2mnf.cJG, 2020-08-07 08:57:49.077, 2020-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();

});

我正在使用 Laravel 5.8 和 PHP 版本 7.4.4。


开满天机
浏览 81回答 1
1回答

素胚勾勒不出你

您正在尝试将新记录/行插入到对电子邮件具有唯一约束(进而创建唯一索引)的表中。由于这似乎是唯一约束中包含的唯一列,因此这意味着某个电子邮件值只能在表中插入一次。否则它不会是该列的唯一值。根据您的表列名称,这看起来像是某种用户注册,这似乎是所需的行为。这意味着您的数据库中可能只有一些需要清除的测试数据。或者在开发过程中暂时放弃唯一约束,或者继续弥补新的电子邮件值。
打开App,查看更多内容
随时随地看视频慕课网APP