如何处理数据库中ID重复的问题

对于ID的增长可以是自增长或者是手动增长,自增长的话,如果测试添加一批数据进来就有可能与之前或者之后的插入数据的ID重复,那么这个时候可以有如下解决思路:

1、设置自增长主键的基值

alter table test auto_intrement = number;

查看数据库里数据的最大的值,将number设置成一个比之还大的值,即往后插入数据时的ID值是从number开始增长

2、通过手动增加主键的值

先查询数据库中ID的最大值,然后插入数据时设置ID为ID+1

3、使用生成主键ID的工具类

例如:ID为 K+年月日时分秒+7为随机数

这样的ID即有业务意义同时还确保唯一,缺点是长度较长

工具类如下,仅供参考:

public class DataBaseUtil {
public static String getTimeUUID() {
return "K" + (new SimpleDateFormat("yyMMddHHmmss")).format(new Date()) + getStringRandom(7);
}
public static String getStringRandom(int length) {
String val = "";
Random random = new Random();
for(int i = 0; i < length; ++i) {
val = val + String.valueOf(random.nextInt(10));
}
return val;
}

猜你喜欢

转载自blog.csdn.net/wj18570504421/article/details/78190982