关于自增ID的弊端


如果现在公司的数据库 OLD_DB_Table1 有以下记录:

1 a

2 b

3 c

4 d

--以上(1-4)是公司自用数据

A用户新增一条记录 e

5 e

现在新的数据库公司的New_DB_Table1 的数据要更新

1 a

2 b

3 c

4 d

5 L

6 M

--以上(1-6)是公司自用数据

...

那么用户的这条 5 e 记录就被替换了

解决方法1:需要加多一个列 用于标记是否是用户数据

解决方法2:ID列 改为nvarchar 用id 列自身标记是否是用户数据,如U001 C001 分别代表用户数据,公司数据。

每次插入,ID由最大的ID(数字部分)+1 (或者其他可以控制的方法)。

------然而如果+1 ,那么多用户同时操作,也就是说并发时,应该会有错误。(未去证实)至于这种方法,可能的并发操作,造成ID重复问题的解决方案,需继续考虑。

优质内容筛选与推荐>>
1、【转】Java辉煌,还能延续多久
2、anima2d的优化和压缩
3、es6 Set 数组或字符串去重
4、Sharing Content
5、用信号量进程同步与互斥


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号