请教一个是事情:
我在做二次开发的时候
发现一种处理表自增的方式:所有表的Id主键都是Nvarchar(10),所有表的ID 最大值 都统一存放在另一个表(表.A,两列:一列是常规表的标示。一列是常规表ID的最大值)里面。在每次插入数据的时候,都往表.A 查询。返回对应的ID最大值+1,通过这种方式做表的ID自增唯一处理。最后把表.A的最大值更新。
这种方式有什么好处?
我找到比较靠谱的答案是 很久以前只有数据库只有int16 处理大数据自增的时候 会超过临界。所以用这种方式。
不知道还有没有其他答案。
我在考虑要不要去掉这种方式,因为过多的查询,太影响数据批量插入的速度。
------解决方案--------------------------------------------------------
这么久没人理,
原因我大概知道了。
1,就是我说的那个,int16的问题。
2,有些数据库 如oracle 是没有自增这个功能的,
3,在批量写入数据库中时,会比较效率。比如主从表的时候,不再需要主表插入后,取到主表ID再插入明显。