토토 커뮤니티 만들기이름as이벤트to개체[where조건] [대신] [Action| 아무것도 아님 ]
생성 규칙의 이름.
이벤트는 중 하나입니다.select, 업데이트, 삭제또는삽입.
개체는테이블또는테이블.컬럼.
조항의 모든 SQL.NEW또는현재대신 나타날 수 있습니다 인스턴스 변수 인스턴스 변수가있을 때마다 변수 SQL에서 허용됩니다.
모든 SQL 문.NEW또는현재대신 나타날 수 있습니다 인스턴스 변수 인스턴스 변수가있을 때마다 변수 SQL에서 허용됩니다.
토토 커뮤니티이 성공적으로 있으면 메시지가 반환되었습니다 생성.
규칙의 의미론은 당시에 개인이 인스턴스에 액세스, 업데이트, 삽입 또는 삭제됩니다. 현재 인스턴스 (검색, 업데이트 및 삭제) 및 새로운 인스턴스 (업데이트 및 추가). 인 경우이벤트on 절 및에 지정 됨조건WHERE에 지정되었습니다 조항은 현재 인스턴스에 대해 true입니다.Action규칙의 일부가 실행됩니다. 첫 번째, 그러나 현재 인스턴스 및/또는 새 인스턴스가 대체됩니다현재.Attribute-NameandNEW.Attribute-Name.
theAction토토 커뮤니티의 일부 동일한 명령 및 트랜잭션 식별자와 함께 활성화를 일으킨 사용자 명령.
SQL 규칙에 대한주의가 순서대로 진행됩니다. 같은 클래스 인 경우 이름 또는 인스턴스 변수에 나타납니다.이벤트,조건and theAction토토 커뮤니티의 일부, 그것들은 모두입니다 다른 튜플 변수로 간주됩니다. 더 정확하게NEWand현재는 유일한 튜플 변수입니다 이 조항들 사이에서 공유. 예를 들어, 다음 두 가지 규칙은 동일한 의미를 가지고 있습니다.
emp.salary on emp.name = "joe"에 대한 업데이트 emp (...)를 업데이트하십시오. EMP-1.Salary에 대한 업데이트. EMP-3 (...) Where ... 업데이트하십시오.각 토토 커뮤니티은 대신 선택적 태그를 가질 수 있습니다. 이것없이 꼬리표,Action사용자 명령에 추가이벤트in조건규칙의 일부가 발생합니다. 또는Action부품이 대신 수행됩니다 사용자 명령. 이 후에Action키워드가 될 수 없습니다.
재 작성과 인스턴스 토토 커뮤니티 시스템을 선택할 때 특정 토토 커뮤니티 응용 프로그램의 경우, 다시 쓰기에서 기억하십시오. 체계,현재관계를 나타냅니다 인스턴스 시스템에서는 인스턴스 (튜플).
재 작성 규칙 시스템을 주목하는 것이 매우 중요합니다. 원형 규칙을 감지하거나 처리하지 않습니다. 예를 들어, 다음 두 규칙 정의가 각각 허용되지만 에 의해Postgres, 검색 명령은 원인Postgresto 충돌:
예 19-1. 원형 재 작성의 예 토토 커뮤니티 조합.
토토 커뮤니티 만들기 bad_rule_combination_1 IS emp에 eMp 대신 Toyemp를 선택하십시오 규칙 작성 bad_rule_combination_2 IS를 작성하십시오 Toyemp에 선택하십시오 대신 emp를 선택하십시오
EMP에서 검색하려는 시도는 원인이됩니다Postgres충돌로.
선택 * From Emp
당신은 클래스에 대한 토토 커뮤니티 정의에 액세스해야합니다. 그것에 대한 토토 커뮤니티을 정의하십시오. 사용grant및Revoke권한 변경.
Sam을 Joe와 동일한 급여 조정을 받게 만들 수 있습니다 :
규칙 create example_1은 업데이트 emp.salary where current.name = "joe" EMP 업데이트 (SANARY = NEW.SALARY) 여기서 emp.name = "Sam"Joe가 급여 조정을받을 때 이벤트는 True와 Joe의 현재 인스턴스가되고 새로운 인스턴스가 제안되었습니다. 실행 루틴에 사용할 수 있습니다. 그러므로 그의 새로운 급여는입니다 이후 규칙의 행동 부분으로 대체 된 실행. 이것은 Joe의 급여를 Sam에게 전파합니다.
접근 할 때 Joe의 급여를 받으십시오 :
토토 커뮤니티 작성 example_2 IS emp.salary에 선택하십시오 where current.name = "bill" 대신하십시오 Emp에서 (Emp.Salary)를 선택하십시오 여기서 emp.name = "Joe"
신발 직원의 급여에 대한 Joe 액세스 거부 부서 (current_user반환합니다 현재 사용자의 이름) :
규칙 작성 example_3 IS emp.salary에 선택하십시오 where current.dept = "신발"및 current_user = "joe" 대신 아무것도하지 않아
장난감에서 일하는 직원의 전망 만들기 부서.
Toyemp 만들기 (이름 = char16, Salary = int4) 규칙 example_4를 작성하십시오 Toyemp에 선택하십시오 대신하십시오 Emp에서 (Emp.Name, Emp.Salary)를 선택하십시오 여기서 emp.dept = "Toy"
모든 신입 사원은 5,000 명 이하를 만들어야합니다
규칙 작성 example_5 IS emp에 삽입하여 새로운 .salary 5000 뉴스 세트 급여를 업데이트하십시오 = 5000
SQL 토토 커뮤니티의 객체는 배열 참조가 될 수 없으며 매개 변수를 가질 수 없습니다.
"OID"필드를 제외하고는 시스템 속성이 될 수 없습니다 토토 커뮤니티의 어느 곳에서나 참조되었습니다. 무엇보다도 이것은 의미합니다 인스턴스의 기능 (예 : "foo (emp)"where"emp"IS 클래스)는 토토 커뮤니티의 어느 곳에서나 전화 할 수 없습니다.
토토 커뮤니티 시스템은 토토 커뮤니티 텍스트 및 쿼리 계획을 텍스트로 저장합니다. 속성. 이것은 토토 커뮤니티의 생성이 실패 할 수 있음을 의미합니다. 토토 커뮤니티과 다양한 내부 표현이 일부 가치를 초과합니다 그것은 한 페이지 (8kb)의 순서입니다.
토토 커뮤니티 작성은 A입니다.Postgres언어 확장.
SQL92.