如果ID在A表中是唯一的,且你是A表中新记录生成之后再取得ID然后写入B表的话,B表中是不会出现相同ID的记录的。

解决方案 »

  1.   

    如果ID在A表中是唯一的,且你是A表中新记录生成之后再取得ID然后写入B表的话,B表中是不会出现相同ID的记录的。
    ========问题是,几万次操作中,总会有一,二次有这样的情况,所以我才感觉很奇怪
      

  2.   

    就是并发造成的,如果要排除这种问题,只有trigger能帮你
      

  3.   

    那就再B表中给AID加一个唯一索引,这样又重复的话就会报错了,你就可以捕捉到错误了。
      

  4.   

    说并发引起的, 并不赞同。
    如果是在A表中新记录创建生成之后去取这个ID的话,再并发也不可能会两个程序取到同一个ID的,否则A表的ID字段唯一性就出问题了。
    楼主检查一下你代码的执行逻辑吧,估计你在取A表新记录ID的时机上有问题。
      

  5.   

    这个可能是由于插入操作是在程序里完成的,比如程序先读到A表最后的ID,再行插入B表,遇到这种情况最好还是由数据库来完成
      

  6.   

    wangdehao(找找找(现在很幸福)) ( ) 信誉:100    Blog   加为好友  2007-04-12 13:23:27  得分: 0  
     
     
       程序应该没问题的,实在想不通是什么原因~!!!!!!!!
    --------------------
    程序的问题
      
     
    up