젠 토토 생성적용되는 새 젠 토토을 정의합니다. 지정된 테이블이나 뷰에.생성 또는 교체 젠 토토새 규칙을 생성하거나 기존 규칙을 대체합니다. 동일한 테이블에 대한 동일한 이름의 규칙입니다.
그PostgreSQL규칙 시스템 수행할 대체 작업을 정의할 수 있습니다. 데이터베이스 테이블의 삽입, 업데이트 또는 삭제. 대략 즉, 규칙에 따라 다음과 같은 경우 추가 명령이 실행됩니다. 주어진 테이블에 주어진 명령이 실행됩니다. 또는,대신규칙은 주어진 명령을 대체할 수 있습니다. 또는 명령이 전혀 실행되지 않도록 할 수 있습니다. 규칙은 SQL 뷰를 구현하는 데에도 사용됩니다. 깨닫는 것이 중요하다 규칙이 실제로는 명령 변환 메커니즘이라는 것, 또는 명령 매크로. 변환은 실행 전에 발생합니다. 명령이 시작됩니다. 실제로 실행되는 작업을 원하는 경우 각 물리적 행에 대해 독립적으로 방아쇠는 규칙이 아닙니다. 규칙 시스템에 대한 자세한 내용은 다음을 참조하세요.PostgreSQL : 문서 : 9.3 : 사설 토토 시스템.
현재,ON 선택규칙은 다음과 같아야 합니다. 무조건대신규칙이 있으며 다음이 있어야 합니다. 단일로 구성된 작업선택명령. 따라서,ON 선택규칙 효과적으로 테이블을 뷰로 변환하며, 그 내용은 다음과 같습니다. 규칙에 의해 반환된 행선택12553_12670보기 만들기실제 테이블을 생성하는 것보다 명령을 내리고 정의하다선택 중젠 토토을 따르세요.
당신은 정의하여 업데이트 가능한 보기의 환상을 만들 수 있습니다.삽입 중, 켜짐 업데이트및삭제 중규칙(또는 임의 귀하의 목적에 충분한 것의 하위 집합)을 교체하십시오. 다른 항목의 적절한 업데이트로 보기의 작업 업데이트 테이블. 지원하고 싶다면삽입 돌아오는 중등등, 적절한 값을 입력하세요.돌아오는 중이러한 각 젠 토토에 조항을 추가하세요.
복잡한 조건부 규칙을 사용하려고 하면 문제가 발생합니다. 업데이트 보기: 거기반드시무조건적이 되세요대신13497_13590대신, 그러면 시스템이 업데이트 작업을 수행하려는 시도는 여전히 거부됩니다. 더미에 대한 작업을 수행하려고 시도하게 될 수도 있다고 생각합니다. 경우에 따라 뷰 테이블. 모든 것을 처리하고 싶다면 조건부 규칙의 유용한 사례, 무조건 추가대신 아무것도 하지 마세요규칙을 통해 시스템이 더미 테이블을 업데이트하기 위해 호출되지 않는다는 것을 이해합니다. 그런 다음 조건부 규칙을 비로 만듭니다.대신; 적용되는 경우에는 기본값에 추가아무것도 대신하지 않음액션. (이 방법은 현재 지원되지 않습니다.돌아오는 중그러나 쿼리는 수행됩니다.)
참고:자동으로 이루어질 수 있을 만큼 간단한 보기 업데이트 가능(참조PostgreSQL : 문서 : 9.3 :스포츠 토토 사이트 만들기) 그렇죠 업데이트하기 위해 사용자가 만든 젠 토토이 필요하지 않습니다. 당신이 동안 어쨌든 명시적인 젠 토토을 만들 수 있으며 자동 업데이트는 변환은 일반적으로 명시적 젠 토토보다 성능이 뛰어납니다.
고려해볼 만한 또 다른 대안은 다음을 사용하는 것입니다.대신트리거(참조트리거 생성) 규칙 대신
생성할 규칙의 이름. 이는 다음과 구별되어야 합니다. 동일한 테이블에 대한 다른 규칙의 이름입니다. 에 대한 여러 규칙 동일한 테이블, 동일한 이벤트 유형이 알파벳 이름으로 적용됩니다. 주문하세요.
이벤트는 다음 중 하나입니다.선택, 삽입, 업데이트또는삭제.
테이블의 이름(선택적으로 스키마 한정) 또는 보기 규칙이 적용됩니다.
모두SQL조건부 표현식(반환부울). 조건 표현식은 다음을 제외한 어떤 테이블도 참조할 수 없습니다.신규그리고오래된할 수 없습니다. 집계 함수를 포함합니다.
대신다음 명령을 나타냅니다. 실행되어야 한다대신 의원래 명령입니다.
또한명령이 수행되어야 함을 나타냅니다. 처형되다추가로 에원래 명령입니다.
둘 다 아니라면또한아니요대신지정되었습니다.또한기본값입니다.
규칙 작업을 구성하는 명령 또는 명령들. 유효 명령은선택, 삽입, 업데이트, 삭제또는알림.
내부조건그리고명령, 특수 테이블 이름신규그리고오래된다음에 사용할 수 있습니다. 참조된 표의 값을 참조하세요.신규다음에서 유효합니다.삽입 중그리고업데이트 중새 항목을 참조하는 규칙 행이 삽입되거나 업데이트되고 있습니다.오래된이다 다음에서 유효함업데이트 중그리고삭제 중기존 행을 참조하는 규칙 업데이트 또는 삭제되었습니다.
젠 토토을 생성하거나 변경하려면 테이블의 소유자여야 합니다. 그것.
다음에 대한 규칙에서삽입, 업데이트또는삭제에 보기에 다음을 추가할 수 있습니다.돌아오는 중절 뷰의 열을 내보냅니다. 이 절은 다음을 계산하는 데 사용됩니다. 규칙이에 의해 트리거되면 출력됩니다.삽입 돌아오는 중, 업데이트 반환 중, 또는복귀 삭제각각 명령을 실행합니다. 규칙이 없는 명령에 의해 트리거되는 경우돌아오는 중, 젠 토토의돌아오는 중절은 무시됩니다. 현재 구현은 무조건적으로만 허용대신포함할 젠 토토돌아오는 중; 또한 최대 하나가 있을 수 있습니다.돌아오는 중에 대한 모든 규칙 중 조항 같은 이벤트. (이렇게 하면 후보자가 한 명만 있음을 보장합니다.돌아오는 중계산에 사용되는 절 결과.)돌아오는 중뷰에 대한 쿼리 없으면 거절됩니다돌아오는 중사용 가능한 젠 토토의 절.
순환 규칙을 피하도록 주의하는 것이 매우 중요합니다. 에 대한 예를 들어, 다음 두 규칙 정의는 각각 에서 수락함PostgreSQL, 그선택명령으로 인해 발생함PostgreSQL다음으로 인해 오류를 보고합니다. 규칙의 재귀 확장:
다음과 같이 "_RETURN" 젠 토토 생성
t1을 선택하면
대신에
SELECT * FROM t2;
다음과 같이 "_RETURN" 젠 토토 생성
t2로 선택
대신에
SELECT * FROM t1;
t1에서 * 선택;
현재 규칙 작업에 다음이 포함되어 있는 경우알림명령, 그알림명령은 무조건 실행됩니다. 즉,알림행이 없더라도 발행됩니다. 규칙이 적용되어야 하는 항목입니다. 예를 들어, 다음과 같습니다:
mytable 업데이트 시에 inform_me 규칙을 생성하세요. mytable에도 알림을 보내세요. UPDATE mytable SET 이름 = 'foo' WHERE id = 42;
하나알림이벤트가 다음 동안 전송됩니다.업데이트, 존재 여부 조건과 일치하는 행id = 42. 이는 향후 수정될 수 있는 구현 제한사항입니다. 릴리스합니다.
| 이전 | 배트맨 토토 : 문서 : 9.3 : 배트맨 토토 9.3.25 문서화 | 다음 |
| 역할 생성 | 위로 | 스키마 생성 |