dougan7657
2019-02-12 15:02
浏览 127

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

I ask is possible to increase id number per new user in sqlite3 database using golang and xorm without cause async problem?

  • I will use golang for http server. So may many user in same time http request and register

For example this is my database

sid int
username string
password string

Now the question is for example I have 5 user before that and last user sid is 5, so it is possible to increase sid number for user 6 without cause problem?

The main problem is this; In my method when new request received by server for register. Server check last sid from sqlite3 database. For example if last sid is 5 server increase this number with + 1 so our sid get 6 but when try save new user to sid 6 when server is busy and in same time another guy want register cause error to sid 6 already taken. I know this is not professional method and now try find solotion.

图片转代码服务由CSDN问答提供 功能建议

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

  • 我将对http服务器使用golang。 因此可能许多用户同时http请求并注册

    例如,这是我的数据库

      sid int  
    用户名字符串
    密码字符串
       
     
     

    现在的问题是,例如,在此之前我有5个用户,最后一个用户sid为5,因此可以增加sid数 对于用户6没有引起问题?

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

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • dsflxcfuw27742248 2019-02-12 15:18
    已采纳

    Don't let the server code generate the ID. Let the DB do this job. SQLite has the AUTOINCREMENT keyword for this task.

    Edit: But as the SQLite documentation cleary tells use, the use of INTEGER PRIMARY KEY is recommended over AUTOINCREMENT.

    打赏 评论

相关推荐 更多相似问题