工作中自增型主键的小麻烦主要有以下几个:
1. 同DB中,多表关系。
2. 不同DB中,同表关系。
3. 数据维护及导入导出。
4. 分布式。
举例
A表主键a自增,B表主键b自增,A.a是B.a的外键。
1.同DB中,多表关系。
插入时,需要知道A.a才能插入B.b
2.不同DB中,同表关系。
同时存在 X和Y两个schema,于是 X.A.a 和 Y.A.a 的意义不一致。
3. 数据维护及导入导出。
麻烦(a),出现断号。
没有delete,但见过自增型主键断号的事,未能重现和追查。纳闷。
麻烦(b),不是所有DB或版本,可以重置计数器。
麻烦(c),从X把 A(1...n)导入 Y,在Y上完全要重新关联表关系。
实际业务场景是,X版本的债权状况劣化,需要包装(倒卖)到Y版本。
4. 分布式。
分段自增,避免区间叠加。
1. 同DB中,多表关系。
2. 不同DB中,同表关系。
3. 数据维护及导入导出。
4. 分布式。
举例
A表主键a自增,B表主键b自增,A.a是B.a的外键。
1.同DB中,多表关系。
插入时,需要知道A.a才能插入B.b
2.不同DB中,同表关系。
同时存在 X和Y两个schema,于是 X.A.a 和 Y.A.a 的意义不一致。
3. 数据维护及导入导出。
麻烦(a),出现断号。
没有delete,但见过自增型主键断号的事,未能重现和追查。纳闷。
麻烦(b),不是所有DB或版本,可以重置计数器。
麻烦(c),从X把 A(1...n)导入 Y,在Y上完全要重新关联表关系。
实际业务场景是,X版本的债权状况劣化,需要包装(倒卖)到Y版本。
4. 分布式。
分段自增,避免区间叠加。