| 윈 토토 : 문서 : 9.4 : 윈 토토 | |||
|---|---|---|---|
| PostgreSQL : 문서 : 9.4 : 무지개 토토 생성 | PostgreSQL : 문서 : 9.4 : SQL 윈 토토 | PostgreSQL : 문서 : 9.4 : 스포츠 토토 사이트 생성 | |
토토 꽁 머니 생성 [ 또는 교체 ]이름AS ON이벤트받는 사람테이블_이름[ 어디에서조건]
하세요 [ 또한 | 대신 ] 아무것도 |명령 | ( 명령 ; 명령 ... ) }
어디에서이벤트다음 중 하나일 수 있습니다.선택 | 삽입 | 업데이트 | 삭제토토 꽁 머니 생성지정된 테이블이나 뷰에 적용되는 새 토토 꽁 머니을 정의합니다.토토 꽁 머니 생성 또는 교체새 규칙을 생성하거나 동일한 테이블에 대해 동일한 이름의 기존 규칙을 대체합니다.
그포스트그레SQL규칙 시스템을 사용하면 데이터베이스 테이블의 삽입, 업데이트 또는 삭제 시 수행할 대체 작업을 정의할 수 있습니다. 대략적으로 말하면 규칙은 특정 테이블에서 특정 명령이 실행될 때 추가 명령이 실행되도록 합니다. 또는,대신규칙은 주어진 명령을 다른 명령으로 바꾸거나 명령이 전혀 실행되지 않게 할 수 있습니다. 규칙은 SQL 보기를 구현하는 데에도 사용됩니다. 규칙은 실제로 명령 변환 메커니즘 또는 명령 매크로라는 점을 인식하는 것이 중요합니다. 변환은 명령 실행이 시작되기 전에 발생합니다. 실제로 각 물리적 행에 대해 독립적으로 실행되는 작업을 원하는 경우 규칙이 아닌 트리거를 사용하는 것이 좋습니다. 규칙 시스템에 대한 자세한 내용은 다음을 참조하세요.PostgreSQL : 문서 : 9.4 : 토토 커뮤니티 시스템.
현재,ON 선택규칙은 무조건적이어야 합니다대신토토 꽁 머니이며 단일로 구성된 작업이 있어야 합니다.선택명령. 따라서,선택 중rule은 테이블을 뷰로 효과적으로 변환합니다. 이 뷰의 표시되는 콘텐츠는 토토 꽁 머니에서 반환된 행입니다.선택12679_12796보기 만들기실제 테이블을 생성하고 정의하는 명령ON 선택토토 꽁 머니을 따르세요.
정의하여 업데이트 가능한 보기의 환상을 만들 수 있습니다.삽입 중, 업데이트 중및삭제 중규칙(또는 목적에 맞는 규칙의 하위 집합)을 사용하여 뷰의 업데이트 작업을 다른 테이블의 적절한 업데이트로 대체합니다. 지원하고 싶다면반환 삽입등등, 적절한 값을 입력하세요.돌아오는 중이러한 각 토토 꽁 머니에 조항을 추가하세요.
복잡한 보기 업데이트에 조건부 규칙을 사용하려고 하면 문제가 발생합니다. 거기반드시무조건적이 되세요대신13621_13714대신, 그러면 시스템은 업데이트 작업을 수행하려는 시도를 거부합니다. 왜냐하면 어떤 경우에는 뷰의 더미 테이블에서 작업을 수행하려고 시도하게 될 수도 있다고 생각하기 때문입니다. 조건부 규칙에서 유용한 사례를 모두 처리하려면 unconditional을 추가하세요.대신 아무것도 하지 마세요규칙은 더미 테이블을 업데이트하기 위해 호출되지 않는다는 것을 시스템이 이해하도록 보장합니다. 그런 다음 조건부 규칙을 비로 만듭니다.대신; 적용되는 경우 기본값에 추가됩니다.아무것도 대신하지 마세요행동. (이 방법은 현재 지원되지 않습니다.돌아오는 중그러나 쿼리합니다.)
참고:자동으로 업데이트할 수 있을 만큼 간단한 보기(참조PostgreSQL : 문서 : 9.4 :메이저 토토 사이트 만들기)은 업데이트하기 위해 사용자가 만든 토토 꽁 머니이 필요하지 않습니다. 어쨌든 명시적인 토토 꽁 머니을 만들 수는 있지만 자동 업데이트 변환은 일반적으로 명시적인 토토 꽁 머니보다 성능이 뛰어납니다.
고려해볼 만한 또 다른 대안은 다음을 사용하는 것입니다.대신트리거(참조PostgreSQL : 문서 : 9.4 : 토토 베이 생성) 규칙 대신
생성할 규칙의 이름. 이는 동일한 테이블에 대한 다른 규칙의 이름과 구별되어야 합니다. 동일한 테이블, 동일한 이벤트 유형에 대한 여러 규칙이 알파벳 이름 순서로 적용됩니다.
이벤트는 다음 중 하나입니다.선택, 삽입, 업데이트또는삭제.
규칙이 적용되는 테이블 또는 보기의 이름(선택적으로 스키마 한정).
모두SQL조건식(반환부울). 조건 표현식은 다음을 제외한 어떤 테이블도 참조할 수 없습니다.신규및오래된, 집계 함수를 포함할 수 없습니다.
대신명령이 실행되어야 함을 나타냅니다.대신에원래 명령입니다.
또한명령이 실행되어야 함을 나타냅니다.추가로원래 명령입니다.
둘 다 아니라면또한아니요대신지정되었습니다.또한기본값입니다.
규칙 작업을 구성하는 명령 또는 명령들. 유효한 명령은 다음과 같습니다.선택, 삽입, 업데이트, 삭제또는알림.
내부조건그리고명령, 특수 테이블 이름신규그리고오래된참조된 테이블의 값을 참조하는 데 사용할 수 있습니다.신규다음에서 유효합니다.삽입 중그리고업데이트 중삽입되거나 업데이트되는 새 행을 참조하는 규칙.오래된다음에서 유효합니다.업데이트 중그리고삭제 중업데이트되거나 삭제되는 기존 행을 참조하는 규칙.
테이블에 대한 토토 꽁 머니을 생성하거나 변경하려면 테이블의 소유자여야 합니다.
다음에 대한 규칙에서삽입, 업데이트또는삭제보기에 다음을 추가할 수 있습니다.돌아오는 중뷰의 열을 내보내는 절입니다. 이 절은 규칙이 다음에 의해 트리거되는 경우 출력을 계산하는 데 사용됩니다.반환 삽입, 업데이트 반환 중또는복귀 삭제각각 명령을 실행합니다. 규칙이 없는 명령에 의해 트리거되는 경우돌아오는 중, 토토 꽁 머니의복귀 중절은 무시됩니다. 현재 구현에서는 무조건만 허용합니다.대신포함할 토토 꽁 머니돌아오는 중; 또한 최대 하나가 있을 수 있습니다.돌아오는 중18546_18643돌아오는 중결과를 계산하는 데 사용되는 절입니다.)반환 중뷰에 대한 쿼리가 없으면 거부됩니다.돌아오는 중사용 가능한 토토 꽁 머니의 절.
순환 규칙을 피하도록 주의하는 것이 매우 중요합니다. 예를 들어, 다음 두 규칙 정의는 각각 다음에서 허용됩니다.PostgreSQL, 그선택명령으로 인해 발생함PostgreSQL토토 꽁 머니의 반복적 확장으로 인해 오류를 보고하려면:
규칙 "_RETURN" AS 생성
t1을 선택하면
대신에
SELECT * FROM t2;
다음과 같이 "_RETURN" 토토 꽁 머니 생성
t2로 선택
대신에
SELECT * FROM t1;
t1에서 * 선택;
현재 규칙 작업에 다음이 포함되어 있는 경우알림명령, 그알림명령은 무조건 실행됩니다. 즉,알림규칙을 적용해야 하는 행이 없더라도 발행됩니다. 예를 들어, 다음과 같습니다:
mytable 업데이트 시에 inform_me 규칙을 생성하세요. mytable에도 알림을 보내세요. UPDATE mytable SET 이름 = 'foo' WHERE id = 42;
하나알림이벤트는 다음 기간 동안 전송됩니다.업데이트, 조건과 일치하는 행이 있는지 여부id = 42. 이는 향후 릴리스에서 수정될 수 있는 구현 제한 사항입니다.