表A:有字段sercode varchar2(10)
表B:有字段sercode varchar2(10),sendtime date
表C:有字段sercode varchar2(10), sendtime date请问,我现想从表B中找出 B.sercode = A.sercode and B.sendtime =sysdate 的记录插入表C中,
由于这条SQL是循环执行,怎么样才能保证已插入表C中的记录不再重复插入????
望高手指点,谢先!!!

解决方案 »

  1.   

    不知道你是想说“你想循环执行这条语句“还是“这条sql语句是循环执行的“
    如果是第一种,也就说表B是增加的,可以考虑触发器来执行
    如果是第二中,直接
    insert into C
    select * from B where B.sercode = A.sercode and B.sendtime =sysdate
    即可
      

  2.   

    INSERT INTO C (SERCODE, SENDTIME)
    SELECT DISTINCT B.SERCODE, B.SENDTIME 
    FROM A, B
    WHERE B.SERCODE = A.SERCODE 
    AND B.SENDTIME = SYSDATE
    AND NOT EXISTS (SELECT * FROM C WHERE B.SERCODE = C.SERCODE AND B.SENDTIME = C.SENDTIME)
      

  3.   

    insert into C
    select * from B where B.sercode = A.sercode and B.sendtime =sysdate  and 
    B.sercode not in (select sercode from C)
      

  4.   

    insert into c(sercode , sendtime ) 
    (select sercode, sendtime from a, b 
    where B.sercode = A.sercode and B.sendtime =sysdate
    and (( B.sercode, B.sendtime ) NOT IN (SELECT  C.sercode, C.sendtime  FROM C)))