2012-02-29 2 views
0

안녕 얘들 아 birthDate 전에 deathDate 수 입력 할 수 있도록 ORACLE 10g 트리거를 만들어야합니다. 이 문제에 정말 고심하고 있습니다. 친절한 사람들에게 감사를 표합니다.트리거를 생성하는 지원

내 계획은 다음과 같습니다

CONSTRAINT_NAME    C             
------------------------------ -             
QUOTE_FK      R             
ROLE_FK      R             
MOVIE_ROLE_FK     R             
ACTOR_ROLE_FK     R             
ACTORID      P             
MOVIEID      P             
QUOTEID      P             
ROLEID       P             
ROLEQUOTEID     P  

Relationships: 

ALTER TABLE Role ADD CONSTRAINT ACTOR_ROLE_FK FOREIGN KEY (actorID) REFERENCES Actor (actorID); 
ALTER TABLE Role ADD CONSTRAINT MOVIE_ROLE_FK FOREIGN KEY (movieID) REFERENCES Movie (movieID); 
ALTER TABLE RoleQuote ADD CONSTRAINT Role_FK FOREIGN KEY (roleID) REFERENCES Role (roleID); 
ALTER TABLE RoleQuote ADD CONSTRAINT Quote_FK FOREIGN KEY (quoteID) REFERENCES Quote (quoteID); 
+0

을 트리거로 시행하는 제약 조건이 필요하면

ALTER TABLE actor ADD CONSTRAINT chk_birth_before_death CHECK(birthDate < deathDate); 

을 straint? [P.S ...] – Ben

+0

게시 할 예정입니다 : CREATE TRIGGER death_date_not_valid BEFORE birthDate user1137472

+0

그게 맞는지는 모르겠지만 그게 내가 시도한 것입니다. – user1137472

답변

5

그 종류 : 필요한

내 관계 제약을 요청하시기 바랍니다 더 이상 정보가있는 경우

Actor (actorID, lastName, firstName, middleName, suffix, gender, birthDate, deathDate) 
Movie (movieID, title, year, company, totalNoms, awardsWon, DVDPrice, discountPrice) 
Quote (quoteID, quote) 
Role (roleID ,roleName ,gender ,actorID* ,movieID*) 
RoleQuote (roleID*, quoteID*) 

은 당신에게

감사 제약 조건은 CHECK 죄수로 구현되어야합니다. 당신이 정말로 (더 많은 작업이 느려집니다 및 필요) 지금까지 시도 무엇

CREATE OR REPLACE TRIGGER check_death_date 
    AFTER INSERT OR UPDATE ON actor 
    FOR EACH ROW 
BEGIN 
    IF(:new.birthDate > :new.deathDate) 
    THEN 
    RAISE_APPLICATION_ERROR(-20001, 'Birth date cannot be later than death date.'); 
    END IF; 
END; 
+0

정말 고맙습니다. 신의 축복에 대해 알려 줘서 고맙습니다. – user1137472

+0

alter table을 추가해야합니까? 또는 그냥 방아쇠를 실행할 수 있습니다. – user1137472

+0

@ user1137472 - 제약 조건을 만들거나 트리거를 만들 수 있습니다. 두 가지를 모두하는 것은 이치에 맞지 않습니다. 내 강한 환경 설정은 트리거를 사용하는 대신 제약 조건을 사용하여이 규칙을 적용하는 것입니다. –

관련 문제