大力出奇迹
先执行select sn from xxxx where oid=xxxx, 找指定的oid的记录,如果错误,就是记录不存在(数据库挂了?不可能的啦。。),然后既然不存在,那就新增对应oid的一条记录。这是常用的如果有就读出来没有就创建新记录的机制。
逻辑和流程没问题?
笑话,大力出奇迹,板砖也能飞上天!
同时并发一堆这请求,只要力气够大速度够快,大家都可以同时在select还没来得及insert的时候进入if err!=nil,就产生了一堆相同oid的记录。
啥?没这么巧?系统因为这个重复一大堆,现在都还不知道怎么擦这屁股。。。