무지개 토토 생성새 무지개 토토을 정의합니다 지정된 테이블이나 뷰에 적용됩니다.만들기 또는 무지개 토토을 교체하세요.새 무지개 토토을 생성하거나 동일한 테이블에 대한 동일한 이름의 기존 무지개 토토입니다.
그PostgreSQL무지개 토토 시스템 수행할 대체 작업을 정의할 수 있습니다. 데이터베이스 테이블의 삽입, 업데이트 또는 삭제. 대략 즉, 무지개 토토에 따라 다음과 같은 경우 추가 명령이 실행됩니다. 주어진 테이블에 주어진 명령이 실행됩니다. 또는 무지개 토토 주어진 명령을 다른 명령으로 바꾸거나 명령이 실행되지 않도록 할 수 있습니다. 전혀 처형됩니다. 무지개 토토은 테이블 뷰를 다음과 같이 구현하는 데 사용됩니다. 음. 무지개 토토은 실제로는 명령임을 깨닫는 것이 중요하다 변환 메커니즘 또는 명령 매크로. 변환 명령 실행이 시작되기 전에 발생합니다. 당신이 실제로 각각 독립적으로 실행되는 작업을 원합니다. 실제 행에서는 무지개 토토이 아닌 트리거를 사용하고 싶을 것입니다. 무지개 토토 시스템에 대한 자세한 내용은 다음을 참조하세요.제34장.
현재,ON 선택무지개 토토은 다음과 같아야 합니다. 무조건대신무지개 토토 및 필수 단일로 구성된 작업이 있습니다.선택명령. 따라서,켜짐 선택무지개 토토은 효과적으로 테이블을 뷰로 전환합니다. 보이는 내용은 무지개 토토에 의해 반환된 행입니다.선택명령보다는 이전에 있었던 명령 테이블에 저장됩니다(있는 경우). 더 나은 스타일로 간주됩니다. 글을 쓰다뷰 만들기명령보다 실제 테이블을 생성하고 정의합니다.켜짐 선택무지개 토토을 따르세요.
정의하여 업데이트 가능한 보기의 환상을 만들 수 있습니다.삽입 중, 켜짐 업데이트및삭제 중무지개 토토(또는 임의 귀하의 목적에 충분한 것의 하위 집합)을 교체하십시오. 다른 항목의 적절한 업데이트로 보기의 작업 업데이트 테이블.
보기에 조건부 무지개 토토을 사용하려고 하면 문제가 있습니다. 업데이트: 거기반드시베 무조건적인대신각각에 대한 무지개 토토 뷰에서 허용하려는 작업입니다. 무지개 토토이 조건부인 경우 아니면 아님대신, 그러면 시스템이 업데이트 작업을 수행하려는 시도는 여전히 거부됩니다. 더미에 대한 작업을 수행하려고 시도하게 될 수도 있다고 생각합니다. 경우에 따라 뷰 테이블. 모든 것을 처리하고 싶다면 조건부 무지개 토토의 유용한 사례는 다음과 같습니다. 그냥 추가하세요 무조건대신 아무것도 하지 마세요무지개 토토 시스템이 절대로 호출되지 않을 것임을 이해하는지 확인하십시오. 더미 테이블을 업데이트합니다. 그런 다음 조건부 무지개 토토을 다음과 같이 만들지 마세요.대신; 그들이 있는 경우에는 적용하면 기본값에 추가됩니다.대신 아무것도행동.
생성할 무지개 토토의 이름. 이는 다음과 구별되어야 합니다. 동일한 테이블에 대한 다른 무지개 토토의 이름입니다. 다중 동일한 테이블, 동일한 이벤트 유형에 대한 무지개 토토이 적용됩니다. 알파벳 이름 순서입니다.
짝수는 다음 중 하나입니다.선택, 삽입, 업데이트또는삭제.
The name (optionally schema-qualified) of the table or 무지개 토토이 적용되는 항목을 확인하세요.
모든 SQL 조건식(반환부울). 조건 표현식은 다음과 같을 수 없습니다. 다음을 제외한 모든 표를 참조하세요.신규그리고오래된, 집계를 포함할 수 없음 기능.
무지개 토토 작업을 구성하는 명령 또는 명령들. 유효한 명령은 다음과 같습니다.선택, 삽입, 업데이트, 삭제또는알림.
내부조건그리고명령, 특수 테이블 이름신규그리고오래된5월 참조된 테이블의 값을 참조하는 데 사용됩니다.신규다음에서 유효합니다.삽입 중그리고업데이트 중새 항목을 참조하는 무지개 토토 행이 삽입되거나 업데이트되고 있습니다.오래된이다 다음에서 유효함업데이트 중그리고삭제 중rules to refer to the existing row being 업데이트 또는 삭제되었습니다.
권한이 있어야 합니다.무지개 토토에 테이블에 대한 무지개 토토을 정의할 수 있습니다.
순환 무지개 토토을 피하도록 주의하는 것이 매우 중요합니다. 에 대한 예를 들어, 다음 두 무지개 토토 정의는 각각 에서 수락함PostgreSQL, 그선택명령으로 인해 발생함PostgreSQL오류를 보고합니다. 왜냐하면 쿼리가 너무 많이 순환되었습니다.
다음과 같이 "_RETURN" 무지개 토토 생성
t1을 선택하면
대신에
SELECT * FROM t2;
다음과 같이 "_RETURN" 무지개 토토 생성
t2로 선택
대신에
SELECT * FROM t1;
t1에서 * 선택;
현재 무지개 토토 작업에 다음이 포함되어 있는 경우알림명령, 그알림명령은 무조건 실행됩니다. 즉,알림다음에도 발행됩니다 무지개 토토을 적용해야 하는 행이 없는 경우. 에 대한 예를 들어,
mytable 업데이트 시에 inform_me 무지개 토토 생성 DO NOTIFY mytable; UPDATE mytable SET 이름 = 'foo' WHERE id = 42;
하나알림이벤트가 다음 동안 전송됩니다.업데이트, 존재 여부 행이 포함된 행id = 42. 이것은 implementation restriction that may be fixed in future 릴리스합니다.