由主键和序列号设置而引起的一个问题

        今天发现了一个奇怪的问题,我有一个证书列表,通过点击证书编号即可以查看证书信息。但是我点击某个证书编号时却出现了错误,但是点击其他证书编号就不会有问题。而且地址栏中已经显示了此证书的ID,这就说明在列表页面是可以获取ID的。然后就我开始确认此证书信息是不是有不同与其他证书信息的地方。因为我对这些证书信息做了太多的判断,有可能就是因为某个判断条件出错而导致这样的问题。认真对比之后发现没有什么特别的地方。最后,我决定去数据库中进行查询。终于发现,原来有另一条证书信息的ID与这个证书的ID相同。这是多么简单而愚蠢的错误!我仔细想了想,为什么会犯这种低级错误呢,原来,因为证书信息过多,我是直接从Excel中复制到数据库中的,复制完之后我就忽略了一个地方,那就是Oracle的序列号sequece,每张表对应一个sequence,我打开这张表的sequence才发现“next number”的数值比数据库中的ID的数值小很多。比如,我表中最大的ID为1000,如果sequence中的“next number”为400,那么到时就会出现两个400至1000之间的ID。但即使是这样,当前台添加数据时,后台应该报一个“违反唯一性约束”的错误啊,可是连这个错误都没有报。我这才发现,原来我以前根本就没有将ID设置为主键。好吧,到这里我就彻底凌乱了,我居然一连犯了两个这么低级的错误!罪过罪过~


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值