무지개 토토 작성새로운 무지개 토토을 정의합니다 지정된 테이블 또는보기에 적용.생성 또는 무지개 토토 교체새 무지개 토토을 만들거나 교체합니다 같은 테이블에 대해 같은 이름의 기존 무지개 토토.
thePostgreSQL무지개 토토 시스템 수행 할 대체 작업을 정의 할 수 있습니다. 데이터베이스 테이블의 삽입, 업데이트 또는 삭제. 대충 말하자면, 무지개 토토은 추가 명령이 주어진 테이블에 주어진 명령이 실행됩니다. 또는 무지개 토토 주어진 명령을 다른 명령으로 바꾸거나 명령을 유발할 수 있습니다. 전혀 실행됩니다. 무지개 토토은 테이블 뷰를 AS로 구현하는 데 사용됩니다 잘. 무지개 토토이 실제로 명령임을 인식하는 것이 중요합니다. 변환 메커니즘 또는 명령 매크로. 변형 명령이 시작되기 전에 발생합니다. 당신이 실제로 각각 독립적으로 발사되는 작업을 원합니다 물리적 줄, 당신은 아마도 무지개 토토이 아닌 트리거를 사용하고 싶을 것입니다. 무지개 토토 시스템에 대한 자세한 정보는입니다.34 장.
현재,ON SELECT무지개 토토이 있어야합니다 무조건대신무지개 토토과 필수 단일로 구성된 행동이 있습니다select명령. 따라서, anon 선택하다무지개 토토은 테이블을 효과적으로 뷰로 바꿉니다 가시 내용은 무지개 토토에 의해 반환 된 행입니다select무엇이든 대신 명령 테이블에 저장 (무엇이든). 더 나은 스타일로 간주됩니다 쓰기보기 만들기실제 테이블을 만들고 정의on 선택하다무지개 토토에 대한 무지개 토토.
정의하여 업데이트 가능한보기의 환상을 만들 수 있습니다insert, on 업데이트및ON DELETE무지개 토토 (또는 다른 당신의 목적에 충분한 사람들의 하위 집합) 교체하기에 기타에 대한 적절한 업데이트로보기에서 조치 업데이트 테이블.
조건부 무지개 토토을 사용하려고하면 캐치가 있습니다. 업데이트 : 거기필수be 무조건대신각각에 대한 무지개 토토 당신이보기에서 허용하고 싶은 행동. 무지개 토토이 조건부 인 경우 또는대신여전히 업데이트 작업을 수행하려는 시도를 거부합니다. 더미에서 행동을 수행하려고 노력할 수 있다고 생각합니다. 경우에 따라보기의 표. 당신이 모든 것을 처리하고 싶다면 조건부 무지개 토토의 유용한 사례는 가능합니다. 그냥 추가하십시오 무조건대신 아무것도무지개 토토 시스템이 절대 호출되지 않을 것을 이해하는지 확인하십시오. 더미 테이블을 업데이트하십시오. 그런 다음 조건부 무지개 토토을 사용하지 않습니다대신; 그들이있는 경우 적용, 기본값에 추가대신 아무것도 아님행동.
생성 무지개 토토의 이름. 이것은 구별되어야합니다 같은 테이블에 대한 다른 무지개 토토의 이름. 다수의 동일한 테이블 및 동일한 이벤트 유형에 대한 무지개 토토이 적용됩니다. 알파벳 이름 순서.
심지어는입니다.select, 삽입, 업데이트, 또는삭제.
테이블의 이름 (선택적으로 스키마 자격) 적용되는 무지개 토토보기.
모든 SQL 조건부 표현식 (반환부울). 조건 표현은 그렇지 않을 수 있습니다 을 제외한 모든 테이블을 참조하십시오.NEW및old, 집계를 포함하지 않을 수 있습니다 기능.
무지개 토토 조치를 구성하는 명령 또는 명령. 유효한 명령은select, 삽입, 업데이트, 삭제또는Notify.
내조건and명령, 특별 테이블 이름NEWandold5 월 참조 표에서 값을 참조하는 데 사용됩니다.NEW유효합니다insertandon update새로운 것을 참조하는 무지개 토토 삽입 또는 업데이트중인 행.oldis 유효업데이트andON DELETE기존 행을 참조하는 무지개 토토 업데이트 또는 삭제.
당신은 특권이 있어야합니다무지개 토토a 그것에 대한 무지개 토토을 정의 할 수있는 테이블.
순환 무지개 토토을 피하기 위해주의를 기울이는 것이 매우 중요합니다. 을 위한 예를 들어 다음 두 가지 무지개 토토 정의는 각각이지만 수락PostgreSQL, Theselect명령은 원인이 될 것입니다PostgreSQL오류를보고합니다 쿼리는 너무 많이 순환했습니다 :
무지개 토토 작성 "_return"을 만듭니다 T1까지 선택하십시오 대신하십시오 선택 *에서 t2에서; 무지개 토토 "_return"을 작성하십시오 T2로 선택하십시오 대신하십시오 선택 *에서 *; 선택 *에서 t1;
현재, 무지개 토토 조치에 A가 포함 된 경우Notify명령,Notify명령은 무조건 실행됩니다. 즉,Notify도 발행됩니다 무지개 토토에 적용 해야하는 행이없는 경우. 을 위한 예,
mytable에 대한 업데이트와 같이 무지개 토토을 작성하십시오. mytable set name = 'foo'여기서 id = 42; 업데이트
ONENotify이벤트가 전송됩니다 그만큼업데이트로 행id = 42. 이것은입니다 향후 고정 될 수있는 구현 제한 릴리스.