2013-10-17 3 views
0

PostgreSQL 9.2를 사용하고 있으며 테이블 B에 정의 된 INSERT 트리거를 실행하지 않고 테이블 A에서 테이블 B로 데이터를 복사하는 INSERT 문을 작성해야합니다 (일종의 대량 삽입 조작??).INSERT 트리거를 발생시키지 않는 INSERT 문

이 특정 테이블 (표 B)에서 많은 INSERT, UPDATE 및 DELETE 작업이 실행됩니다. 이 처형 중 매회마다 트리거가 발동해야합니다.

표준 일일 DML 작업으로 인해 트리거를 일시적으로 사용 불가능으로 설정할 수 없습니다.

트리거가 아닌 트리거링 INSERT 문에 대한 구문을 알려주는 사람이 있습니까?

답변

1

"권한있는"삽입을 다른 사용자로 실행하십시오. 그렇게하면 트리거가 현재 사용자를 확인하고 아무 것도 수행하지 않아도 종료 할 수 있습니다.

+0

그런 다음 "일반"삽입과 "특수"삽입 사이에 다른 점에 대한 힌트를 제공해야합니다. –

+0

표준 인서트는 트리거에서 다른 인서트가 발생하므로 트리거를 발생시켜야합니다. 이 '특수 삽입'은 표에만 사용됩니다. 문제는 동일한 응용 프로그램의 동일한 사용자가 '표준'및 '특수'삽입을 실행해야한다는 것입니다. 동일한 사용자가 삽입을 실행하는 방법이 있는지 궁금 해서요. 그러나 일부는 '정상'(트리거가 실행 됨)이고 일부는 트리거되지 않습니다. –

+0

나는 다시 시도 할 것이다. INSERT의 두 가지 유형은 무엇이 다른가요? 두 쿼리를 모두 인쇄하여 나에게 보여 줬다면, 어떤 쿼리인지 어떻게 알 수 있습니까? –