逻辑:
表A  表B
当表A被insert数据时,表B参照被插入数据的主键在表B中插入一条数据,或者当表A中某条数据被更新时然后调用一个过程又经过一些逻辑更新表B中的数据。

解决方案 »

  1.   

    写触发器啊。
    举个例子:CREATE TABLE course
    (
        cno VARCHAR2(10),
        credit  NUMBER(4)
    );CREATE TABLE SC
    (
        sno VARCHAR2(10),
        cno VARCHAR2(10),
        grade NUMBER(4)
    );CREATE TABLE credit
    (
        sno VARCHAR2(10),
        sumcredit NUMBER,
        notpass NUMBER
    );
    实现的触发器:CREATE OR REPLACE TRIGGER TriggerOnSC
        AFTER INSERT ON SC  
        FOR EACH ROW
    DECLARE
        newCredit number(8);
        tempCNO SC.cno%TYPE;
    BEGIN
        --判断是否及格
        IF :NEW.grade >= 60 THEN
            --取该课程学分
            tempCNO := :NEW.cno;
            SELECT credit INTO newCredit FROM course WHERE cno = tempCNO;
            --更新该学生学分
            UPDATE credit SET sumcredit = sumcredit + newCredit WHERE sno = tempCNO;
        ELSE
            --更新不及格次数
            UPDATE credit SET notpass = notpass + 1 WHERE sno = tempCNO;
        END IF;
    END TriggerOnSC;