当我试图向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.
您正在尝试将新记录/行插入到电子邮件上具有唯一约束(从而创建唯一索引)的表中。
由于这似乎是唯一约束中包含的唯一列,这意味着某个电子邮件值只能在表中插入一次。否则,它将不是此列的唯一值。
从表列名来看,这看起来像是某种用户注册,这似乎是需要的行为。这意味着您的数据库中可能只有一些需要清除的测试数据。或者在开发过程中暂时删除唯一约束,或者继续创建新的电子邮件值。