2012-04-15 20 views
-2
Student table : student ID, student name, student contact 
Evaluation: EvalID, Eval number 

生徒は1-7の各レッスンの評価を行います。彼らは7Oracle Triggerはあるテーブルから別のテーブルにデータをコピーします

の評価を与えた場合、私は私がやっていることをどのコピーの学生情報トリガーをクリートする必要がある、と彼らは別のテーブルに与えた評価は、私はここから何をすべきかを知らない

Create or replace trigger test 
After Insert on evaluation 
when (eval_number = 0) 
Begin 

です.... 何か案は?私の最初のトリガービットは正しいですか?

答えて

3

次の表:

CREATE OR REPLACE TRIGGER AIEvaludation 
AFTER INSERT ON evaluation 
FOR EACH ROW 
WHEN (new.eval_num = 7) 
DECLARE 
    CURSOR curStudent IS 
     SELECT studentid, student_name, student_contact 
      FROM student 
     WHERE studentid = :new.student_id; 
    -- 
    vRowStudent curStudent%ROWTYPE; 
BEGIN 
    OPEN curStudent; 
    FETCH curStudent INTO vRowStudent; 
    CLOSE curStudent; 
    INSERT INTO eval_audit 
    (studentid, student_name, student_contact, eval_num) 
    VALUES (vRowStudent.studentid, vRowStudent.student_name, vRowStudent.student_contact, :new.eval_num); 
END AIEvaludation; 
:7との評価があった場合に

CREATE TABLE student(
studentId INTEGER, 
student_name varchar2(100), 
student_contact varchar2(100)); 

CREATE TABLE evaluation(
evalId INTEGER, 
eval_num INTEGER, 
student_id INTEGER) 

create table eval_audit(
studentId INTEGER, 
student_name VARCHAR2(100), 
student_contact VARCHAR2(100), 
eval_num INTEGER) 

トリガは、生徒からのデータを挿入します

関連する問題