범퍼카 토토 만들기새 범퍼카 토토을 정의합니다 지정된 테이블 또는보기에 적용.생성 또는 범퍼카 토토 교체새 규칙을 만들거나 교체합니다 같은 테이블에 대해 같은 이름의 기존 규칙.
thepostgresql규칙 시스템 수행 할 대체 조치를 정의 할 수 있습니다. 데이터베이스 테이블의 삽입, 업데이트 또는 삭제. 대충 말하자면, 범퍼카 토토은 추가 명령이 주어진 테이블에 주어진 명령이 실행됩니다. 또는 an대신규칙은 주어진 명령을 대체 할 수 있습니다 다른 사람에 의해, 또는 명령을 전혀 실행하지 않도록합니다. 규칙 테이블 뷰도 구현하는 데 사용됩니다. 중요합니다 규칙이 실제로 명령 변환 메커니즘이라는 것을 인식하고 또는 명령 매크로. 변환은 실행 전에 발생합니다 명령의 시작이 시작됩니다. 실제로 작업을 원한다면 각 물리적 행에 대해 독립적으로 화재를 일으킬 것입니다. 규칙이 아닌 트리거를 사용하십시오. 규칙에 대한 자세한 내용 시스템이PostgreSQL : 문서 : 9.2 : 사설 토토 시스템.
현재,ON SELECT규칙이 있어야합니다 무조건대신범퍼카 토토과 필수 단일로 구성된 행동이 있습니다select명령. 따라서, anon 선택하다범퍼카 토토은 테이블을 뷰로 효과적으로 바꿉니다 가시 내용은 범퍼카 토토에 의해 반환 된 행입니다select무엇이든 대신 명령 테이블에 저장 (무엇이든). 더 나은 스타일로 간주됩니다 쓰기보기 만들기실제 테이블을 만들고 정의on 선택하다범퍼카 토토에 대한 범퍼카 토토.
정의하여 업데이트 가능한보기의 환상을 만들 수 있습니다insert, on 업데이트및ON DELETE규칙 (또는 다른 당신의 목적에 충분한 사람들의 하위 집합) 교체하기에 기타에 대한 적절한 업데이트로보기에서 조치 업데이트 테이블. 지원하고 싶다면삽입 반환그리고 그럼에도 적합한 것을 넣으십시오반환이들 각각에 대한 조항 범퍼카 토토. 또는 업데이트 가능한보기는를 사용하여 구현할 수 있습니다.대신트리거 (참조트리거 만들기).
조건부 규칙을 사용하려고하면 캐치가 있습니다. 업데이트 : 거기필수be 무조건대신각각에 대한 규칙 당신이보기에서 허용하고 싶은 행동. 규칙이 조건부 인 경우 또는대신, 그러면 시스템이됩니다 여전히 업데이트 작업을 수행하려는 시도를 거부합니다. 더미에서 행동을 수행하려고 노력할 수 있다고 생각합니다. 경우에 따라보기의 표. 당신이 모든 것을 처리하고 싶다면 조건부 규칙의 유용한 사례, 무조건 추가대신 아무것도이를 보장하기위한 규칙 이 시스템은 업데이트를 요구하지 않을 것이라는 것을 이해합니다. 더미 테이블. 그런 다음 조건부 규칙을 비로 만드십시오.대신; 그들이 적용되는 경우, 그들은 기본값에 추가대신 아무것도행동. (이 방법은 현재 지원하기 위해 작동하지 않습니다반환쿼리.)
생성 규칙의 이름. 이것은 구별되어야합니다 같은 테이블에 대한 다른 규칙의 이름. 다수의 동일한 테이블 및 동일한 이벤트 유형에 대한 규칙이 적용됩니다. 알파벳 이름 순서.
이벤트는 중 하나입니다.select, 삽입, 업데이트또는삭제.
테이블의 이름 (선택적으로 스키마 자격) 적용되는 규칙보기.
AnySQL조건부 표현 (반환부울). 그만큼 조건 표현식은을 제외한 테이블을 참조 할 수 없습니다.NEWandold, 집계를 포함 할 수 없습니다 기능.
대신명령을 실행해야합니다대신원본 명령.
또한명령을 실행해야합니다외에원본 명령.
그렇지 않은 경우또한NOR대신지정되어 있습니다.또한기본값입니다.
규칙 조치를 구성하는 명령 또는 명령. 유효한 명령은select, 삽입, 업데이트, 삭제또는Notify.
내조건and명령, 특별 테이블 이름NEWandoldcan 참조 표에서 값을 참조하는 데 사용됩니다.NEW유효합니다insertandon update새로운 것을 참조하는 규칙 삽입 또는 업데이트중인 행.oldis 유효on update및ON DELETE기존 행을 참조하는 규칙 업데이트 또는 삭제.
당신은 범퍼카 토토을 만들거나 변경하기위한 테이블의 소유자 여야합니다. 그것.
17999_18015삽입, 업데이트또는삭제a 보기, 당신은 a를 추가 할 수 있습니다.반환절 그것은보기의 열을 방출합니다. 이 조항은 사용됩니다 범퍼카 토토이 AN에 의해 트리거되면 출력 계산리턴 삽입, 업데이트 반환또는반환 삭제각각 명령. 규칙이 명령에 의해 트리거 될 때 없이반환, 범퍼카 토토반환절은 무시됩니다. 전류 구현은 무조건 만 허용대신포함하는 범퍼카 토토반환; 또한 최대 하나가있을 수 있습니다반환모든 규칙 중 조항 같은 이벤트. (이것은 후보가 하나만 있음을 보장합니다반환계산에 사용되는 절 결과.)반환없으면보기가 거부됩니다반환사용 가능한 범퍼카 토토의 조항.
순환 규칙을 피하기 위해주의를 기울이는 것이 매우 중요합니다. 을 위한 예를 들어 다음 두 가지 규칙 정의는 각각이지만 수락PostgreSQL, theselect명령은 원인이 될 것입니다PostgreSQL때문에 오류를보고합니다 범퍼카 토토의 재귀 확장 :
규칙 작성 "_return"as T1까지 선택하십시오 대신하십시오 선택 *에서 t2에서; 규칙 "_return"을 작성하십시오 T2로 선택하십시오 대신하십시오 선택 *에서 *; 선택 *에서 t1;
현재, 범퍼카 토토 조치에 A가 포함 된 경우Notify명령,Notify명령은 무조건 실행됩니다. 즉,Notify도 발행됩니다 범퍼카 토토에 적용 해야하는 행이없는 경우. 을 위한 예, in :
mytable에 대한 업데이트와 같이 규칙을 작성하십시오. mytable set name = 'foo'여기서 id = 42; 업데이트
ONENotify이벤트가 전송됩니다 그만큼업데이트조건과 일치하는 행id = 42. 이것은 고정 될 수있는 구현 제한입니다. 미래의 릴리스.