다른 테이블의 정보를 사용하여 테이블 중 하나를 업데이트하려는 두 개의 테이블이 있습니다.
create table CUSTOMER
(CID number(6),
First_Name varchar2(12),
Last_Name varchar2(12),
Category varchar2(7),
Balance_Due number(4,2),
SponsorID number(6),
CONSTRAINT pkCID PRIMARY KEY (CID),
CONSTRAINT fkCUSTOMER foreign key (sponsorID) references customer);
그리고 업데이트하려는 테이블 :
create table BOOK_COPY
(Copy_Num number(5),
Bookid number(5),
out_to_CID number(6),
Date_Out date,
Date_Due date,
Held_Until date,
held_for_CID number(6),
CONSTRAINT PKCOPY PRIMARY KEY (Copy_Num,Bookid),
CONSTRAINT FKCID FOREIGN KEY (out_to_CID) references CUSTOMER (CID),
CONSTRAINT FKHeld FOREIGN KEY (held_for_CID) references CUSTOMER (CID),
CONSTRAINT FKBookid FOREIGN KEY (Bookid) references BOOK (Bookid));
내가하고 싶은 것은 BOOK_COPY를 업데이트하는 것이므로 date_due = Date_out + 90 where category = faculty
또한 케이스를 사용하여 하나 이상의 카테고리를 업데이트하고 싶습니다.
내 명세서에 "where category = 'faculty'"절이 없으면 업데이트 할 수 있습니다. 하지만 고객 테이블을 가져 오려고하면 구문 오류가 발생합니다.
카테고리별로 기간을 다르게 설정하려면 다음을 제안합니다.
update book_copy b
set date_due = (case (select category from customer c where c.cid= b.out_to_cid)
when 'faculty' then date_out + 90
when 'administrator' then date_out + 120
when 'student' then date_out - 10
else date_due
end);
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다