gpt4 book ai didi

mysql - 键 '' 空字段的重复条目 'users_email_unique'

转载 作者:行者123 更新时间:2023-11-29 02:54:38 26 4
gpt4 key购买 nike

我有两种类型的用户 - 真实用户和虚假用户。假用户是不使用该系统的员工。真实用户使用他们的电子邮件地址登录。所以我的用户迁移有 $table->string('email')->unique();

问题是假用户可能没有电子邮件地址。我可以毫无问题地添加第一个假用户,但第二个会生成错误 SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '' for key 'users_email_unique'

我该怎么办?

最佳答案

听起来 users_email_unique 是您的主键。这意味着当您插入第一个具有空白电子邮件地址的虚假用户时,空白条目将被视为唯一条目。当您输入第二个空白条目时,它违反了实体完整性(重复的主键)。

users_email_unique    unique?
_________________ _______
email@email.com yes
blank yes
blank no

如果您想要多个空白条目,您可以允许 users_email_uniquenull,但是主键列 cannot contain null values :

users_email_unique   unique?
__________________ ________
email@email.com yes
NULL yes
NULL yes

如果您使用 users_email_unique 作为您的主键,那么,正如评论中所指出的,您可能需要:

  • 为“假”用户临时生成一个随机的唯一电子邮件
  • 重新考虑表的主键(也许是某种形式的唯一 ID?)
  • 也许分成两张表,一张用于“真实”用户,一张用于“假”用户

关于mysql - 键 '' 空字段的重复条目 'users_email_unique',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31984272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com