2014-09-16 2 views
0

꼽은, 나는 표 삽입이 표 A로 만든트리거를이 삽입 기록을 개발거야하고있다. 그러므로 나는 시스템 핸들허점의 종류 또는이 시스템까지 루프로 다시 시작해야하고 아마도 DB를 제거 중단을 계속할 것입니다 방법을 알고 싶어요.표의 트리거가 삽입 이벤트에서 어떻게 작동합니까?

모든 종류의 DBMS 전문가라면 다음과 같이 의견을 남길 수 있습니다 ...! 이 문제 또는 허점에 관한 거의 모든 DBMS에 대한 정보를 수집하려고합니다.

감사합니다 ...!

+0

그래서 ... mysql or oracle? 둘 다있을 수는 없습니다. – Aquillo

+0

두 태그를 사용하여 더 많은 사람들을 끌어 들이고 있습니다. 내가 너를 혼란스럽게하거나 너를 괴롭 히면 미안해. @Aquillo – gayan1991

+0

여기에서 문제는 다른 방식으로 응답 할 수있는 두 개의 다른 DBMS를 참조한다는 것입니다. 사람들이 당신을 도울 수 있으려면, 당신이 일하고있는 DBMS를 아는 것이 중요 할 수 있습니다. – Aquillo

답변

0

트리거 대신 사용할 경우에만 동일한 테이블에 레코드를 삽입 할 수 있습니다. 다른 모든 경우에는 삽입되는 레코드 만 수정할 수 있습니다.

이 질문에 대한 답변을 보내주십시오.

+0

나는 그것을 얻는다. 그러나 그것은 내가 찾고 있었던 대답이 아니다! 삽입을 위해이 트리거가 실행 된 경우 어떻게됩니까? – gayan1991

+0

@ gayan1991 "Insert For"트리거를 작성하는 경우 동일한 테이블에 레코드 만 삽입 할 수 있습니다. 이 삽입은 트리거를 다시 발생시키지 않습니다. 표준 데이터베이스의 현재 버전에 대한 기본 규칙은 다음과 같습니다. –

+0

DBMS에 의존 할 수 있습니까? 나는 특히 오래된 DBMS에서이 돌연변이 문제는 Microsoft Windows Server 2005와 같이 처리되지 않는다고 생각합니다. 따라서이 솔루션을 제공하고이를 시도했는지 알고 싶습니다. 오라클 DBMS는 트리거 생성시 이러한 종류의 까다로운 작업을 중단합니다. – gayan1991

0

mysql DBMS에서 트리거를 생성 할 수 있습니다. 삽입 트리거 syntex 난 단지 오라클 말할 수

http://www.techonthenet.com/oracle/triggers/after_insert.php

+0

알았어 !!!. 표 A에 레코드를 삽입하기 위해 표 A에 트리거를 작성하고 삽입이 이루어질 때마다이 트리거를 트리거한다고 가정 해 보겠습니다. 그런 다음 테이블 A에 레코드를 삽입합니다. 다음에 어떤 일이 일어날 지 말해 줄 수 있습니까? – gayan1991

+0

테이블 A에 레코드를 삽입 한 후 동일한 값이 다시 테이블 A에 삽입됩니다. –

+0

첫 번째 삽입은 사용자가 수행합니다. 두 번째 삽입은 트리거 기준입니다. 두 번째 레코드가 만들어지면 트리거가 다시 실행되지 않습니까? – gayan1991

1

을 생성하기위한 링크 아래 체크, 내가 MySQL을 아무것도 몰라.

오라클의 경우 이러한 상황을 돌연변이라고합니다. 오라클은 끝없이 반복되어 나갈 것입니다. 조건을 감지하고 ORA-04091 오류를 발생시킵니다.

즉 :

ORA-04091: table XXXX is mutating, trigger/function may not see it 

표준액 세 기능/w 패키지 및 패키지 레벨 어레이를 정의하는 것이다. 세 가지 기능은 다음과 같습니다 : 1.) 초기화 - 배열을 0으로 만듭니다. 2.) save_row - 현재 행 (uk 또는 pk)의 id를 arrray에 저장합니다. 3. process_rows - 배열을 통과하여 실제로 각 행에 대해 트리거 동작을 수행합니다.

이제

, 일부 트리거 작업을 정의 : 문 레벨이 전 : 후에 문 수준 save_row 전화 : 이전 또는 이후에 행 레벨을 초기화 전화 이러한 방법으로 process_rows에게

전화, 오라클은 돌연변이를 방지하고, 트리거 할 수 있습니다 작동합니다.

자세한 내용과 몇 가지 예제 코드는 여기에서 찾을 수 있습니다 : 도움이 https://asktom.oracle.com/pls/asktom/ASKTOM.download_file?p_file=6551198119097816936

희망.

+0

감사합니다. 유용합니다 ...! – gayan1991

관련 문제