这种情况是没有办法直接建外键的。
没有必要建外键,你的B表的数据全是从A1,A2表来,不要给一般用户插入的权限,没有外键也能维护一致性。

解决方案 »

  1.   

    yang您好!
    我必须这样做,因为a1表和a2表是现场的来得数据,通过触发的方式实时的插入b1表中,且要在b1表中进行统计等。如果是只有a1表的话,我可以做出来,但是两个表我就不知道该如何做了。
      

  2.   

    如果是如你所说,a1表和a2表是现场的来得数据,通过触发的方式实时的插入b1表中,那我觉得你的a1表和a2表没有任何作用,你大可不必要这两个表,采集的数据直接放到B表,也就没有外键的问题了。
    你现在每次采集需要通过触发插入两个表,会影响采集速度的。
      

  3.   

    yang您好!
    其实a1和a2表中的数据很多,有600多个,而b1表中的数据却只有80多个,所以还得需要a1和a2
      

  4.   

    为什么要求
    a1和a2表中的数据很多,有600多个,而b1表中的数据却只有80多个?
    什么逻辑关系?
      

  5.   

    b表中的数据是a1和a2表中的一部分,b表是给前台vb用的,用来显示在界面上的!
    a1和a2是实时采来的,所以数据量很大。
    yang:
    你说用b表加触发器,可是b表不能同时与a1和a2表建立外键,所以,我不知道你的办法是如何实现的?????
      

  6.   

    b表加触发器,当插入,修改B表的时候检查B新数据的机组号、记录号是不是在A1或者A2表有记录,如果没有,可以给出错误并回滚事务,使得修改无效。
      

  7.   

    yang
    你说的跟我说的不是一回事,b表原是空的,数据是由A1和A2表提供,如果是只有A1表和B表(没有A2表),那么在A1表中加触发器,当从现场来的实时数据修改了B表后,触动A1表中的触发器,使B表中的数据改变。这个我已经实现了。
    现在我是有A1和A2两个表,或是同时,或是不同时使B表更新数据。所以我不知道该如何解决?
      

  8.   

    yang
    你说的跟我说的不是一回事,b表原是空的,数据是由A1和A2表提供,如果是只有A1表和B表(没有A2表),那么在A1表中加触发器,当从现场来的实时数据修改了B表后,触动A1表中的触发器,使B表中的数据改变。这个我已经实现了。
    现在我是有A1和A2两个表,或是同时,或是不同时使B表更新数据。所以我不知道该如何解决?
      

  9.   

    问题又回来了,如果你的B表没有修改,那你的外键根本没有必要加。
    你不用管A1和A2两个表同时或者不同时更新B表数据,因为两边的机组号是不同的,不会引起冲突。你先要确定你所说的要加的外键有什么作用。
      

  10.   

    问题又回来了,如果你的B表没有修改,那你的外键根本没有必要加。
    你不用管A1和A2两个表同时或者不同时更新B表数据,因为两边的机组号是不同的,不会引起冲突。你先要确定你所说的要加的外键有什么作用。
      

  11.   

    yang:
    谢谢你了!不加外键我调通了。
    但是,为什么不用加外键呢?我有点糊涂了,请您指点一、二。
    至于分,就给你了,但我也不知道如何给法?你是斑竹,我想你自己办吧?