토토 사이트 생성이름AS ON이벤트받는 사람객체[ 어디에서조건]
[ 대신 ]을 하세요액션어디에서액션다음이 될 수 있습니다:
아무것도
|질의
|
( 질의 ; 질의 ... )
|
[ 질의 ; 질의 ... ]
생성할 규칙의 이름.
이벤트는 다음 중 하나입니다.선택, 업데이트, 삭제또는삽입.
객체는 다음 중 하나입니다.테이블또는테이블.열. (현재는 오직테이블양식은 실제로 구현되었습니다.)
모든 SQL 부울 조건 표현식. 조건 표현식은 다음을 제외한 어떤 테이블도 참조할 수 없습니다.신규그리고오래된.
쿼리를 구성하는 쿼리액션어떤 SQL이든 가능선택, 삽입, 업데이트, 삭제또는알림성명.
내부조건그리고액션, 특수 테이블 이름신규그리고오래된참조된 테이블의 값을 참조하는 데 사용될 수 있습니다(객체). 신규ON INSERT 및 ON UPDATE 규칙에서 유효합니다. 삽입되거나 업데이트되는 새 행을 참조하세요.오래된ON UPDATE 및 ON DELETE 규칙에서 유효합니다. 업데이트되거나 삭제되는 기존 행을 참조하세요.
그PostgreSQL 토토 사이트 시스템대안을 정의할 수 있습니다. 삽입, 업데이트, 삭제 시 수행할 작업 데이터베이스 테이블. 규칙은 테이블 뷰를 다음과 같이 구현하는 데 사용됩니다. 음.
규칙의 의미는 당시 개인이 인스턴스(행)에 액세스, 삽입, 업데이트 또는 삭제된 경우 이전 인스턴스(선택, 업데이트 및 삭제용)이고 새 인스턴스입니다. 인스턴스(삽입 및 업데이트용). 주어진 모든 규칙 이벤트 유형과 주어진 대상 객체(테이블)를 검사합니다. 불특정 주문. 만약조건WHERE 절에 지정됨(경우 any)는 사실입니다.액션일부 토토 사이트이 실행됩니다.액션14619_14849조건그리고액션, 이전 필드의 값 인스턴스 및/또는 새 인스턴스가 대체됩니다.오래된.속성-이름그리고새로운.속성-이름.
그액션규칙의 일부 하나 이상의 쿼리로 구성될 수 있습니다. 여러 쿼리를 작성하려면 괄호나 대괄호로 묶습니다. 그러한 쿼리는 지정된 순서대로 수행됩니다(반면 여러 규칙의 실행 순서를 보장하지 않습니다. 객체).액션또한 가능 아무 작업도 하지 않음을 나타내는 NOTHING이 됩니다. 따라서 DO INSTEAD NOTHING 규칙 원래 쿼리가 실행되지 않도록 합니다(해당 조건이 사실이다); DO NOTHING 규칙은 쓸모가 없습니다.
그액션토토 사이트의 일부 동일한 명령 및 트랜잭션 식별자를 사용하여 실행됩니다. 활성화를 유발한 사용자 명령입니다.
현재 ON SELECT 규칙은 무조건 INSTEAD여야 합니다. 규칙이 있으며 단일 SELECT로 구성된 작업이 있어야 합니다. 쿼리. 따라서 ON SELECT 규칙은 객체를 효과적으로 바꿉니다. 테이블을 뷰로 변환합니다. 표시되는 내용은 반환된 행입니다. 저장된 내용이 아닌 규칙의 SELECT 쿼리를 통해 테이블에(있는 경우) 더 나은 스타일로 간주됩니다. 실제 테이블을 생성하는 것보다 CREATE VIEW 명령을 작성하고 이에 대한 ON SELECT 규칙을 정의하십시오.
범퍼카 토토 : 문서 : 7.2 :보기 생성을 생성합니다 더미 테이블(기본 스토리지 없음) 및 ON 연결 그것으로 규칙을 선택하십시오. 시스템에서는 업데이트를 허용하지 않습니다. 뷰에는 실제 테이블이 없다는 것을 알고 있기 때문입니다. 당신은 할 수 있습니다 ON INSERT를 정의하여 업데이트 가능한 뷰의 환상을 만듭니다. ON UPDATE 및 ON DELETE 규칙(또는 해당 규칙의 하위 집합) 귀하의 목적에 충분함) 다른 테이블에 대한 적절한 업데이트를 확인하세요.
조건부 규칙을 사용하려고 하면 문제가 발생합니다. 업데이트 보기: 거기반드시무조건적인 대신에 행동하세요 뷰에서 허용하려는 각 작업에 대한 규칙입니다. 규칙이라면 조건부이거나 INSTEAD가 아닌 경우 시스템은 계속 작동합니다. 업데이트 작업을 수행하려는 시도를 거부합니다. 더미 테이블에서 작업을 수행하려고 시도하게 될 수도 있습니다. 어떤 경우에는. 유용한 사례를 모두 처리하고 싶다면 조건부 규칙을 사용할 수 있습니다. 그냥 무조건 DO만 추가하세요 시스템이 이를 이해할 수 있도록 INSTEAD NOTHING 규칙 더미 테이블을 업데이트하기 위해 호출되지 않습니다. 그런 다음 INSTEAD가 아닌 조건부 규칙; 그들이 있는 경우에는 실행하면 기본 INSTEAD NOTHING 작업에 추가됩니다.
다음을 수행하려면 테이블에 대한 규칙 정의 액세스 권한이 있어야 합니다. 그것에 대한 규칙을 정의하십시오. 사용그랜트그리고취소권한을 변경합니다.
순환 규칙을 피하도록 주의하는 것이 매우 중요합니다. 예를 들어, 다음 두 규칙 정의는 각각 에 의해 승인됨PostgreSQL, 선택 명령으로 인해 발생합니다PostgreSQL오류를 보고합니다. 왜냐하면 쿼리가 너무 많이 순환되었습니다.
규칙 "_RETemp" AS 생성
Emp로 선택
대신에
SELECT * FROM toyemp;
"_RETtoyemp" AS 토토 사이트 생성
ON 선택 TOyemp
대신에
SELECT * FROM emp;
EMP에서 선택하려는 시도는 다음과 같습니다.PostgreSQL오류를 발행합니다. 왜냐하면 쿼리가 너무 많이 순환되었습니다.
SELECT * FROM emp;
현재 규칙에 NOTIFY 쿼리가 포함된 경우 NOTIFY 무조건 실행됩니다. 즉, NOTIFY는 규칙이 적용해야 하는 행이 없는 경우에도 발행됩니다. 에 적용됩니다. 예를 들어,
mytable 업데이트 시에 inform_me 토토 사이트 생성 DO NOTIFY mytable; UPDATE mytable SET 이름 = 'foo' WHERE id = 42;
업데이트 중에 하나의 NOTIFY 이벤트가 전송됩니다. ID = 42인 행이 없습니다. 이는 구현입니다. 향후 릴리스에서 수정될 수 있는 제한 사항입니다.