이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 사설 토토 작성버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

토토 커뮤니티 만들기

이름

토토 커뮤니티 작성 - 새로운 토토 커뮤니티을 정의
토토 커뮤니티 만들기이름as이벤트to개체[where조건]
    [대신] [Action| 아무것도 아님 ]

입력

이름

생성 규칙의 이름.

이벤트

이벤트는 중 하나입니다.select, 업데이트, 삭제또는삽입.

개체

개체는테이블또는테이블.컬럼.

조건

조항의 모든 SQL.NEW또는현재대신 나타날 수 있습니다 인스턴스 변수 인스턴스 변수가있을 때마다 변수 SQL에서 허용됩니다.

Action

모든 SQL 문.NEW또는현재대신 나타날 수 있습니다 인스턴스 변수 인스턴스 변수가있을 때마다 변수 SQL에서 허용됩니다.

출력

Create

토토 커뮤니티이 성공적으로 있으면 메시지가 반환되었습니다 생성.

설명

규칙의 의미론은 당시에 개인이 인스턴스에 액세스, 업데이트, 삽입 또는 삭제됩니다. 현재 인스턴스 (검색, 업데이트 및 삭제) 및 새로운 인스턴스 (업데이트 및 추가). 인 경우이벤트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

당신은 클래스에 대한 토토 커뮤니티 정의에 액세스해야합니다. 그것에 대한 토토 커뮤니티을 정의하십시오. 사용grantRevoke권한 변경.

usage

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

SQL92.