时间戳作为数据库唯一标识,可能会出现主键重复的情况

记录一下遇到的问题:

  • 使用的是oracle数据库,主键不会像mysql一样有自增的操作,需要自己维护
  • 将时间戳作为某张日志表的主键,测试环境没出现主键重复问题
  • 生产环境运行正常,但是偶尔会出现因为主键重复,导致插入失败的问题
  • 猜测是在并发量比较大,且程序执行速度快的情况下,时间戳会重复,从而导致主键冲突

解决方案:

  • 使用序列,将序列作为主键(推荐)
  • 在插入前,查询主键是否存在

总结:主键还是尽量使用数据库推荐的,例如mysql的自增oracle的序列,尽量不要使用时间戳作为主键/(ㄒoㄒ)/~~保不齐那天生产就炸了!

你可能感兴趣的:(数据库,oracle,java)