programing

Oracle에서 조건부 업데이트를 구현하려면 어떻게 해야 합니까?

codeshow 2023. 10. 19. 22:52
반응형

Oracle에서 조건부 업데이트를 구현하려면 어떻게 해야 합니까?

오라클을 처음 접했는데 SQL 쿼리 중 하나에 문제가 있습니다.

사용자는 2명입니다.User1그리고.User2:

탭1 탭2--------            --------    
엠프노엠프노EmpName EmpName연락처 급여 없음위치

User2는 User1에서 모든 권한을 가집니다.Tab1, 그리고 두 테이블 사이에는 외국 키 관계가 없습니다.

문제:

탭2에 열을 추가하고 싶었습니다."NameDesignation" 그리고 다음 조건을 확인한 후 이 컬럼에 값을 삽입하고자 했습니다.

WHEN User1.Tab1.EmpNo = User2.Tab2.EmpNo THEN
   INSERT INTO Tab2 VALUES (&designation)

저는 정말 어떻게 해야 할지 모르겠어요, 그리고 약간의 도움을 바라고 있었어요.무슨 생각 있어요?

시도해 보십시오.

update user2.tab2.empno t2
set NameDesignation= &designation
where exists (select ''
              from user1.tab1 t1
              where t1.empno=t2.empno)

(편집된 질문과 일치하도록 문이 업데이트됨)

방아쇠가 필요할 겁니다

삽입 또는 업데이트 후:

CREATE OR REPLACE TRIGGER tab1_after_changed
AFTER INSERT OR UPDATE
    ON tab1
    FOR EACH ROW

BEGIN
    DELETE FROM User2.Tab2 WHERE EmpNo=:NEW.EmpNo;
    INSERT INTO User2.Tab2(EmpNo,EmpName,NameDesignation) 
        VALUES (:NEW.EmpNo,:NEW.EmpName, (SELECT DesignationName FROM Designation where DesignationID=:NEW.DesignationID));
END;

나는 방금 Designation(지정)이 있는 테이블을 상상했습니다.ID 번호, 지정 이름 varchar2(xx)) 및 지정이 있는 Tab1ID(번호).

언급URL : https://stackoverflow.com/questions/585090/how-can-i-implement-conditional-updating-in-oracle

반응형