我问是否可以使用golang和xorm在sqlite3数据库中增加每个新用户的ID号而不会引起异步问题?
例如,这是我的数据库
sid int
username string
password string
现在的问题是,例如我之前有5个用户,最后一个用户sid为5,那么可以增加用户6的sid数量而不会引起问题吗?
主要问题是这个;在我的方法中,服务器收到新的注册请求。服务器从sqlite3数据库检查最后一个sid。例如,如果最后一个sid为5,则服务器将这个数字加+ 1,这样我们的sid将为6,但是当服务器繁忙时尝试将新用户保存到sid 6时,同时另一个人想要注册会导致错误已导致sid 6被占用。我知道这不是专业方法,现在尝试查找酥油。
答案 0 :(得分:3)
不要让服务器代码生成ID。让DB来完成这项工作。 SQLite为此任务使用了AUTOINCREMENT
关键字。
编辑:但是,正如SQLite文档明确说明的那样,建议使用INTEGER PRIMARY KEY
而不是AUTOINCREMENT
。