Oracle은 데이터를 다른 테이블에 입력하는 것과 관련하여 하나의 테이블을 업데이트합니다.

술탄 아메드

시나리오는 간단하다

CREATE TABLE one
(ID NUMBER CONSTRAINT
pk_id PRIMARY KEY,
Number_of_relations INTEGER)

CREATE TABLE two
(mock_id NUMBER,
CONSTRAINT fk_id FOREIGN KEY (mock_id) REFERENCES one(ID)
text VARCHAR)

테이블 2에 새 행을 입력 할 때마다 Number_of_relations를 업데이트 할 수 있습니까? 따라서 테이블 1에 ID를 '1'로 입력하면 현재 Number_of_relations가 '0'에 있지만 ( '1', 'hello') 및 ( '1', 'helloagain')을 테이블 2에 추가하면 이제 id '1'에는 두 개의 텍스트가 있지만 표 1의 number_of_relations가 가능한 경우 자동으로 '2'로 업데이트되기를 원합니다. 가능합니까?, 미리 감사드립니다.

Stibbons 숙고

이 트리거는 다음을 수행합니다.

create or replace trigger ins_two after insert on two
for each row
  update one set number_of_relations = number_of_relations + 1
    where one.id = :new.mock_id

테스트:

insert into two values (1, 'hello');
insert into two values (1, 'hello again');
insert into two values (2, 'hello');

select * from one

        ID NUMBER_OF_RELATIONS
---------- -------------------
         1                   2 
         2                   1

이것은 INSERT 작업의 예이며 DELETE 및 UPDATE에 대한 섹션도 추가 할 수 있습니다. "DELETE"의 경우 "UPDATE"에서 number_of_relations를 감소시켜야합니다. 업데이트 된 열에 따라 다르지만 논리는 비슷합니다. 문서 및 예제를 트리거 합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관