이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 38.6. 데이터베이스 로그인 토토 꽁 머니 트리거 예버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

38.5. 데이터베이스 로그인 스포츠 토토 사이트 트리거 예#

스포츠 토토 사이트 트리거에서로그인이벤트는 사용자 로그인, 연결 확인 및 현재 상황에 따라 역할을 할당하거나 세션 데이터 초기화에 유용 할 수 있습니다. 모든 이벤트가를 사용하여 트리거하는 것이 매우 중요합니다.로그인스포츠 토토 사이트는 쓰기를 수행하기 전에 데이터베이스가 복구 중인지 여부를 확인합니다. 대기 서버에 쓰면 접근 할 수 없습니다.

다음 예제는 이러한 옵션을 보여줍니다.

- 테스트 테이블과 역할을 만듭니다
테이블 작성 user_login_log (
  "사용자"텍스트,
  "Session_Start"시간대가있는 타임 스탬프
);
역할 day_worker 만들기;
역할 밤 _worker 만들기;

- 예제 트리거 함수
함수 생성 또는 교체 init_session ()
  event_trigger 보안 정의기를 반환합니다
  언어 plpgsql AS
$$
선언하다
  Hour Integer = Extract (Time Zone 'UTC'에서 Current_Time에서 '시간');
  rec boolean;
시작하다
-1. 오전 2시에서 오전 4시 사이에 로그를 금지합니다.
시간 2에서 4 사이의 시간이면
  예외 '로그인 금지';
끝 IF;

- 아래 점검은 대기 서버에서 수행 할 수 없으므로
- 우리가 수행하기 전에 데이터베이스가 복구되지 않도록
- 운영.
pg_is_in_recovery ()를 Rec로 선택하십시오.
rec라면
  반품;
끝 IF;

-2. 역할을 할당하십시오. 낮에는 day_worker 역할을 부여합니다
- Night_worker 역할.
8에서 20 사이의 시간이면
  || quote_ident (session_user);
  'grant day_worker'로 실행하십시오 quote_ident (session_user);
또 다른
  '||에서'revoke day_worker를 실행하십시오 quote_ident (session_user);
  'grant night_worker'로 실행하십시오 quote_ident (session_user);
끝 IF;

-3. 사용자 세션 데이터 초기화
온도 테이블 세션 _storage (x float, y integer)를 만듭니다.
Alter Table Session_Storage 소유자에게 Session_User;

-4. 연결 시간을 기록하십시오
public.user_login_log 값에 삽입 (session_user, current_timestamp);

끝;
$$;

- 트리거 정의
이벤트 트리거 init_session을 만듭니다
  로그인시
  execute function init_session ();
Alter Event Trigger Init_session 활성화 항상;