토토 사이트 만들기이름as이벤트to개체[여기서조건] [대신]Action여기서Action할 수 있습니다. 아무것도 아님 |쿼리| (쿼리;쿼리...) | [쿼리;쿼리...]
생성 규칙의 이름.
이벤트는 중 하나입니다.select, 업데이트, 삭제또는삽입.
개체는테이블또는테이블.열. (현재,테이블양식은 실제로입니다 구현.)
모든 SQL 부울 조건 표현식. 조건 표현식은을 제외한 테이블을 언급 할 수 없습니다.NEWandold.
쿼리 또는 쿼리가ActionSQL이 될 수 있습니다select, 삽입, 업데이트, 삭제또는Notify진술.
내에서조건andAction, 특별 테이블 이름NEWandold참조 테이블의 값을 참조하는 데 사용될 수 있습니다 (개체).NEWinsert 및 업데이트 규칙에 유효합니다. 삽입 또는 업데이트되는 새 행을 참조하십시오.old업데이트 및 삭제 규칙에 유효합니다. 기존 행이 업데이트되거나 삭제되는 것을 참조하십시오.
thePostgreSQL 토토 사이트 시스템하나는 대체를 정의 할 수 있습니다 인서트, 업데이트 또는 삭제에서 수행 할 조치 데이터베이스 테이블. 규칙은 테이블 뷰를 AS로 구현하는 데 사용됩니다 잘.
규칙의 의미론은 당시에 개인이 인스턴스 (ROW)가 액세스, 삽입, 업데이트 또는 삭제됩니다 이전 인스턴스 (SELECT, 업데이트 및 삭제) 및 새 인스턴스입니다. 인스턴스 (인서트 및 업데이트). 주어진 모든 규칙 이벤트 유형 및 주어진 대상 객체 (테이블)를 검사합니다. 지정되지 않은 순서. 인 경우조건WHERE 절 (if uther)는 사실입니다.Action의 일부 토토 사이트이 실행됩니다. 그만큼Action대신 지정된 경우 원래 쿼리 대신 수행됩니다. 그렇지 않으면 ON의 경우 원래 쿼리 후에 수행됩니다. 삽입 또는 업데이트의 경우 원래 쿼리 이전 또는 삭제 중. 둘 다조건andAction, 오래된 필드의 값 인스턴스 및/또는 새 인스턴스가 대체됩니다old.Attribute-NameandNew.Attribute-Name.
theAction규칙의 일부 하나 이상의 쿼리로 구성 될 수 있습니다. 여러 쿼리를 작성하려면 괄호 나 사각형 괄호로 둘러싸여 있습니다. 그런 쿼리는 지정된 순서로 수행됩니다 (여기서 여러 규칙의 실행 순서에 대한 보장이 아닙니다. 물체). 그만큼Action아무런 조치도 없다는 것을 나타내지 않습니다. 따라서 대신에 아무것도 규칙이 없습니다 원래 쿼리가 실행되는 것을 억제합니다 (조건시 사실입니다); a 규칙은 쓸모가 없습니다.
theAction토토 사이트의 일부 동일한 명령 및 트랜잭션 식별자와 함께 활성화를 일으킨 사용자 명령.
현재, 선택 규칙은 대신 무조건적이어야합니다 규칙 및 단일 선택으로 구성된 조치가 있어야합니다. 질문. 따라서 ON SELECT 규칙은 객체를 효과적으로 돌립니다 눈에 보이는 내용이 반환 된 행 인보기에 테이블 저장된 것이 아닌 규칙의 선택 쿼리에 의해 테이블에서 (무엇이든). 더 나은 스타일로 간주됩니다 실제 테이블을 만드는 것보다 생성보기 명령을 작성하고 선택 규칙을 정의하십시오.
범퍼카 토토 : 문서 : 7.2 :보기 생성생성 a 더미 테이블 (기본 스토리지 없음) 및 on을 연관시킵니다. 그것으로 규칙을 선택하십시오. 시스템은에 대한 업데이트를 허용하지 않습니다 실제 테이블이 없다는 것을 알고 있기 때문에보기. 당신은 할 수 있습니다 인서트를 정의하여 업데이트 가능한보기의 환상을 만듭니다. 업데이트 및 삭제 규칙 (또는 규칙 삭제)에 당신의 목적에 충분)) 다른 테이블에 대한 적절한 업데이트로보기
조건부 규칙을 사용하려는 경우 캐치가 있습니다. 업데이트보기 : 거기필수대신 무조건적입니다 보기에서 허용하고자하는 각 조치에 대한 규칙. 규칙이라면 조건부이거나 대신에 있지 않으면 시스템은 여전히 생각하기 때문에 업데이트 작업을 수행하려는 시도를 거부합니다. 더미 테이블에서 액션을 수행하려고 시도 할 수 있습니다. 어떤 경우에는. 유용한 모든 사례를 처리하려면 조건부 규칙, 당신은 할 수 있습니다; 무조건적인 작업을 추가하십시오 대신 시스템이 이해하도록 규칙이 없습니다. 더미 테이블을 업데이트하기 위해 절대 호출되지 않습니다. 그런 다음 조건부 규칙이 아닌 것; 그들이있는 경우 화재, 그들은 대신 기본값에 추가 된 행동을 더합니다.
당신은 테이블에 대한 규칙 정의에 액세스해야합니다. 그것에 대한 규칙을 정의하십시오. 사용grantandRevoke권한 변경.
순환 규칙을 피하기 위해주의를 기울이는 것이 매우 중요합니다. 예를 들어 다음 두 가지 규칙 정의 각각이지만 에 의해 받아 들여 됨PostgreSQL, 선택 명령이 원인PostgreSQL오류를보고합니다 쿼리는 너무 많이 순환했습니다 :
규칙을 작성하십시오 emp에 eMp 대신하십시오 Toyemp에서 *를 선택하십시오. "_rettoyemp"로 규칙을 작성하십시오 Toyemp에 선택하십시오 대신하십시오 선택 *에서 emp;
EMP에서 선택하려는 시도는 원인이됩니다PostgreSQL쿼리가 너무 많이 순환되었습니다 :
선택 * From Emp;
현재 규칙에 알림 쿼리가 포함 된 경우 알림 무조건적으로 실행됩니다 --- 즉, 알림은 규칙이 필요한 행이 없어도 발행됩니다. 적용하십시오. 예를 들어,
mytable에 대한 업데이트와 같이 규칙을 작성하십시오. mytable set name = 'foo'여기서 id = 42; 업데이트
하나의 알림 이벤트가 업데이트 중에 전송됩니다. ID = 42 인 행이 없습니다. 이것은 구현입니다. 향후 릴리스에서 고정 될 수있는 제한.