CREATE OR REPLACE TRIGGER STUD_TRG_424
  AFTER INSERT OR UPDATE OR DELETE ON STUD_424
  FOR EACH ROW
BEGIN
  RAISE_APPLICATION_ERROR(-20003, '不许更改学号');
  IF INSERTING THEN
    INSERT INTO ST_424
    VALUES
      (:NEW.XH, :NEW.XM, (SYSDATE - :NEW.CSNY) / 365);
  END IF;
  IF UPDATING THEN
    if (NEW.XH != OLD.XH) then
      DELETE FROM ST_424 WHERE XH = :OLD.XH;
      INSERT INTO ST_424
      VALUES
        (:NEW.XH, :NEW.XM, (SYSDATE - :NEW.CSNY) / 365);
    end if;
  END IF;
  IF DELETING THEN
    DELETE FROM ST_424 WHERE XH = :OLD.XH;
  END IF;
END STUD_TRG_424;