피드백 보내기 원인 원인 위치를 여러 개의 등급을 FEEDBACK라는 테이블에서 걸리고 멤버 테이블에 평균 등급을 만듭니다. 나는 새로운 피드백이 삽입 될 때마다 트리거가 각 사람의 평균 등급을 업데이트하기를 원합니다.평균 등급 트리거 ORACLE SQL
----------- 이들은 ---------- -----------
create table Member_T(
MemberID Varchar2 (10) primary key,
MemberFirstName Varchar2 (20) NOT NULL,
MemberLastName Varchar2 (20) NOT NULL,
MemberMidleName Varchar2 (10),
MemberEmail Varchar2 (50) NOT NULL,
MemberPassword Varchar2 (20) NOT NULL,
MemberAdress Varchar2 (50) ,
MemberCity Varchar2 (20) ,
MemberState char (2) ,
MemberCountry Varchar2 (20) ,
MemberZipCode number (5,0),
MemberPhone Varchar2 (12) ,
MemberAverageRating number (3,1) check (MemberAverageRating >= 0.0 AND MemberAverageRating <= 5.0));
create table Feedback_T(
FeedbackID Varchar2 (10) primary key,
FeedbackMemberGiverID Varchar2 (10) references Member_T(MemberID),
MemberReceiverID Varchar2 (10) references Member_T(MemberID),
MemberRating number (3,1) check (MemberRating >= 0.0 AND MemberRating <= 5.0),
MemberComment Varchar2 (500),
MemberFeedbackDate Date Default(sysdate));
내 테이블입니다 - 이건 내 트리거가 -----------
create or replace trigger updateRating
after insert
on Feedback_T
for each row
Declare
rating Feedback_T.MemberRating%type;
receiver Feedback_T.MEMBERRECEIVERID%type;
averageRating Member_T.MemberAverageRating%type;
begin
select AVG(MemberRating), count(MEMBERRECEIVERID)
into rating, receiver
from Feedback_T
where Feedback_T.FEEDBACKID = :new.FEEDBACKID;
update Member_T
set averageRating = rating/receiver
where Member_T.MemberID = :new.MemberID;
end;
----------- 나는이 오류 ---------- -
TRIGGER UPDATERATING compiled
Errors: check compiler log
이것을 컴파일하기 위해 어떤 클라이언트를 사용하고 있습니까? – OldProgrammer
숙제를위한 것입니까? 아니면 진짜 시스템일까요? 컴파일 오류를 수정하면 테이블 런타임 예외를 돌연변이하는 경우가 거의 확실합니다. 다중 사용자 시스템에서는 작동하지 않습니다. 트리거를 사용하여 실제 시스템에서 이런 종류의 일을 구현하는 것은 가능하지만 여기에있는 것보다 훨씬 복잡합니다. –
그것은 내 자신을 위해 노력해 온 것입니다. 나는 첫 번째 방아쇠를 만들기 위해 노력하고 있으며 평균 평정을위한 데이터를 사용하여 그것을하고 싶습니다. 나는 아직도이 컴파일 오류가 어디서 발생하는지 이해하지 못합니다. 나는 ORACLE SQL Developer를 사용하고 있으며 컴파일러 로그를 찾는 데 어려움을 겪고 있습니다 ... – user01230