사설 토토이름
신호를 받을 조건을 알립니다.
통지 명령이 실행되었음을 확인합니다.
이벤트는 수신 프론트엔드에 전달됩니다. 여부와 각 프런트엔드 애플리케이션이 반응하는 방식은 애플리케이션에 따라 다릅니다. 프로그래밍.
그사설 토토명령은 사설 토토 이벤트를 보냅니다. 이전에 실행된 각 프런트엔드 애플리케이션에듣기사설 토토이름지정된 사설 토토에 대해 현재 데이터베이스의 조건입니다.
사설 토토 이벤트를 위해 프런트엔드로 전달된 정보 사설 토토 조건 이름과 사설 토토 백엔드가 포함됩니다. 프로세스의 PID. 데이터베이스 디자이너가 정의하는 것은 주어진 데이터베이스에서 사용될 조건 이름과 각각의 의미입니다.
일반적으로 사설 토토 조건 이름은 다음의 이름과 동일합니다. 데이터베이스의 일부 테이블 및 기본적으로 사설 토토 이벤트 "이 테이블을 변경했습니다. 내용이 무엇인지 살펴보세요."라는 뜻입니다. 새로운 ". 그러나 그러한 연관은 다음과 같이 시행되지 않습니다.사설 토토그리고듣기명령. 예를 들어, 데이터베이스 디자이너는 여러 가지 다른 방법을 사용할 수 있습니다. 단일 항목에 대한 다양한 종류의 변경 사항을 알리는 조건 이름 테이블.
사설 토토간단한 형태의 신호 제공 또는 IPC(프로세스 간 통신) 메커니즘 동일한 액세스 프로세스포스트그레데이터베이스. 더 높은 수준의 메커니즘 추가 전달을 위해 데이터베이스의 테이블을 사용하여 구축할 수 있습니다. 사설 토토자에서 데이터(단순한 조건 이름 이상의) 청취자.
언제사설 토토신호를 보내는 데 사용됩니다. 특정 테이블에 대한 변경 발생, 유용한 프로그래밍 기술은 다음을 넣는 것입니다.사설 토토규칙에서 이는 테이블 업데이트에 의해 트리거됩니다. 이로써 사설 토토 테이블이 변경되면 자동으로 발생하며 애플리케이션 프로그래머가 실수로 이를 잊어버릴 수는 없습니다.
사설 토토SQL 트랜잭션과 상호작용 몇 가지 중요한 방법으로. 첫째, 만일 a사설 토토트랜잭션 내에서 실행되며 사설 토토 이벤트는 거래가 완료될 때까지 전달되지 않습니다. 헌신했다. 거래가 다음과 같으므로 이는 적절합니다. 중단되었습니다. 우리는 그 안의 모든 명령이 중단되었으면 좋겠습니다. 효과, 포함사설 토토. 하지만 그럴 수도 있지 사설 토토 이벤트가 예상된다면 당황 스럽습니다. 즉시 배송됩니다. 둘째, 청취 백엔드가 수신하는 경우 트랜잭션 내에 있는 동안 사설 토토 신호, 사설 토토 이벤트는 연결될 때까지 연결된 프런트엔드로 전달되지 않습니다. 트랜잭션이 완료된 후(커밋되거나 중단됨) 다시 말하지만, 그 이유는 통지가 일정 기간 내에 전달된 경우입니다. 나중에 중단된 거래인 경우 어떻게든 취소하라는 사설 토토 --- 하지만 백엔드는 취소할 수 없습니다. 사설 토토이 프런트엔드로 전송되면 사설 토토을 "되돌려 받습니다". 그래서 사설 토토 이벤트는 트랜잭션 간에만 전달됩니다. 결과 그 중 다음을 사용하는 애플리케이션이 있습니다.사설 토토실시간 신호를 위해 거래를 유지해야 합니다. 짧다.
사설 토토하나의 Unix 신호처럼 작동합니다 중요사항: 동일한 조건명이 시그널링되는 경우 빠르게 연속해서 여러 번 수신자는 하나만 받을 수 있습니다. 여러 실행에 대한 이벤트 사설 토토사설 토토. 그러니 숫자에만 의존하는 것은 좋지 않습니다. 수신된 사설 토토의 수입니다. 대신에 다음을 사용하세요.사설 토토무엇인가에 주의를 기울여야 하는 응용프로그램을 깨우기 위해, 그리고 데이터베이스 개체(예: 시퀀스)를 사용하여 추적합니다. 무슨 일이 일어났는지, 몇 번이나 일어났는지.
전송하는 프런트엔드에서 일반적입니다사설 토토동일한 사설 토토 이름을 듣고 있습니다 그 자체. 이 경우 다음과 같이 사설 토토 이벤트가 반환됩니다. 다른 모든 청취 프론트엔드. 응용 프로그램에 따라 논리상 이로 인해 쓸모없는 작업이 발생할 수 있습니다. 예를 들어, 동일한 업데이트를 찾기 위해 데이터베이스 테이블을 다시 읽습니다. 프론트엔드가 방금 작성되었습니다. 에서포스트그레6.4 이상에서는 다음이 가능합니다. 사설 토토 백엔드가 있는지 확인하여 이러한 추가 작업을 피하세요. 프로세스의 PID(사설 토토 이벤트 메시지에 제공됨)가 동일합니다. 자신의 백엔드 PID로 사용합니다(libpq에서 사용 가능). 그들이 있을 때 마찬가지로 사설 토토 이벤트는 자신의 작업이 다시 되돌아오는 것입니다. 무시할 수 있습니다. (앞서 말한 내용에도 불구하고 단락, 이것은 안전한 기술입니다.포스트그레다음과 별도로 자체 사설 토토을 유지합니다. 다른 백엔드에서 도착했음을 알리므로 놓칠 수 없습니다. 자신의 사설 토토을 무시하여 외부에 사설 토토을 보냅니다.)
이름어떤 문자열이든 유효할 수 있습니다. 이름으로; 실제 이름과 일치할 필요는 없습니다. 테이블. 만일이름다음에 포함되어 있습니다. 큰따옴표를 사용하면 구문적으로 유효한 이름일 필요도 없습니다. 최대 31자 길이의 문자열일 수 있습니다.
일부 이전 릴리스에서포스트그레, 이름큰따옴표로 묶어야 했습니다. 기존 테이블 이름과 일치하지 않는 경우에도 구문상 이름으로 유효합니다. 더 이상 필요하지 않습니다.
에포스트그레스이전 릴리스 6.4에서는 사설 토토 메시지로 전달된 백엔드 PID가 항상 프런트엔드 자체 백엔드의 PID입니다. 그래서 그렇지 않았어 자신의 사설 토토을 다른 클라이언트의 사설 토토과 구별하는 것이 가능합니다. 이전 릴리스에서 알립니다.
다음에서 수신/사설 토토 시퀀스 구성 및 실행psql:
= 가상 듣기; = 가상으로 사설 토토; pid '8448'이 있는 백엔드의 비동기 NOTIFY '가상'이 수신되었습니다.
없습니다사설 토토문의 내용SQL92.