【发布时间】:2020-11-03 01:30:19
【问题描述】:
我有一个需要生成唯一用户名的要求。我知道如何在服务器端执行此操作,但希望尽可能高效,并作为过程的一部分在数据库上执行此操作,但由于我不经常使用 SQL,因此不确定从哪里开始。
我希望能够使用他们的名字和姓氏的第一个字母加上一些数字来创建用户名,如果用户已经存在该用户名,则将其更新为 1。例如
我有用户
- 鲍勃·琼斯 bjones1
- 比尔·琼斯 bjones2
如果添加了用户 Beatrice Jones,那将是 bjones3。
但是用户可以选择他们的用户名,所以有人可能已经选择了 bjones3,所以我希望它自动生成 bjones4。
如果没有用户 B Jones,则创建的第一个用户名应该是 bjones
理想情况下,这一切都将作为用户插入数据库的一部分发生,因此我的 Go 代码只需执行一次数据库调用,用户就会被插入。
更新:
当用户选择自己的用户名时,我会检查它是否存在,如果存在则阻止他们使用。
【问题讨论】:
-
澄清一下,如果 bjones 不存在,创建的用户名是 bjones00001 还是 bjones?
-
但是用户可以选择自己的用户名:希望没有人选择
user1作为其用户名 -
我想成为 bjones 会更有意义
-
当您期望文本 + 固定大小的数字模式时,用户选择的数字可能会影响一些事情
标签: sql postgresql stored-procedures