猿问

我可以使用 golang 为 sqlite3 数据库中的每个新用户增加数值吗?

我问是否可以使用 golang 和 xorm 在 sqlite3 数据库中增加每个新用户的 ID 号而不会导致异步问题?


我将使用 golang 作为 http 服务器。所以可能很多用户在同一时间 http 请求和注册

例如这是我的数据库


sid int

username string

password string

现在的问题是,例如我之前有 5 个用户,最后一个用户 sid 是 5,所以可以增加用户 6 的 sid 号而不会出现问题吗?


主要问题是这个;在我的方法中,当服务器收到新的注册请求时。服务器检查来自 sqlite3 数据库的最后一个 sid。例如,如果最后一个 sid 是 5 服务器增加这个数字 + 1 所以我们的 sid 得到 6 但是当服务器繁忙时尝试将新用户保存到 sid 6 并且同时另一个人想要注册导致错误到 sid 6 已经被占用。我知道这不是专业方法,现在尝试查找 solotion。


隔江千里
浏览 75回答 1
1回答

米脂

不要让服务器代码生成 ID。让数据库完成这项工作。SQLite 有AUTOINCREMENT这个任务的关键字。编辑:但是正如 SQLite 文档清楚地告诉使用的那样,INTEGER PRIMARY KEY建议使用AUTOINCREMENT.
随时随地看视频慕课网APP

相关分类

Go
我要回答