我想在User表中创建一个用户。 这些是我的过程。
我认为,如果在创建用户时未锁定User表,则可以复制电子邮件和昵称。
有什么想法吗?
答案 0 :(得分:4)
尽可能避免锁定。而是使用unique index,只需插入用户即可。如果用户或电子邮件存在,则您的查询将返回类似于以下内容的错误:
错误代码:1062。键'unique_email'的条目'john.doe@example.org'重复
这应该使用 2个单独的索引来完成。一种用于电子邮件,另一种用于用户。它具有以下优点,而缺点几乎为零:
答案 1 :(得分:0)
我会尝试在电子邮件和昵称上创建一个组合的唯一密钥
CREATE UNIQUE INDEX some_index_name ON user_table(email , nickname)
编辑:要解决以下问题,我们还应该为电子邮件和用户名创建2个唯一索引,以确保2个使用不同电子邮件的用户可以共享相同的用户名,反之亦然。