사실 저는 db쪽은 잘 모릅니다.
그래서 트리거도 여기저기 나와있는 예제를 어떻게 응용해서 사용했습니다.
jeseo님께서 오라클에 사용하는 트리거라고 하셨는데 결론이 무언지
모르겠습니다.
어떤 식으로 해결을 해야할지 좀 더 구체적인 답변을 주시면 감사하겠습니다.
-------------------------------------------------------------------------------
>>jseo 님께서 쓰시길<<
:: 오라클에서 사용하는 트리거군요
::
:: >>배두환 님께서 쓰시길<<
::
:: :: update에대한 trigger를 만들었습니다.
:: :: 하고자 하는 것은 user1 table에서 update된 내용을 user2 table에 그대로 반영시키는 것입니다.
:: ::
:: :: 문제는 trigger시 변경된 특정 레코드만 반영돼야하는데 tigger에 의해 모든 레코드의 내용이 변경
:: 됩
:: :: 니다. where 조건이 전혀 먹혀들지 않습니다.
:: ::
:: :: 다음은 내용입니다.
:: ::
:: :: /*--------------------------------------------------------------------------*/
:: :: ALTER trigger DBA.update_t after update order 1 on
:: :: DBA.PDAUSR
:: :: referencing old as user1 new as user2
:: :: for each row
:: ::
:: :: begin
:: :: update USER2 set USID = USER2.USID, USEMPNO = USER2.USEMPNO,USENAME =
:: :: USER2.USENAME,USEPW = USER2.USEPW, USELDT = USER2.USELDT,USESTATUS =
:: :: USER2.USESTATUS,USEUPDATE = USER2.USEUPDATE where USID = USER1.USID
:: :: end
:: ::
:: :: /*--------------------------------------------------------------------------*/
:: ::
:: :: insert나 delete의 경우 잘 되는데 update만 안됩니다.
:: :: where절이 안돼서 USID = '3' 이런 식으로 직접 지정도 해보았는데 모든 레코드를
:: :: update시켜버리네요.
:: :: 도움을 부탁드립니다.
|