F.41. spi — 서버 프로그래밍 인터페이스 토토 사이트/예#

spi모듈은 다음을 사용하는 몇 가지 실행 가능한 예를 제공합니다.PostgreSQL : 문서 (SPI) 및 트리거합니다. 이러한 함수는 그 자체로 어느 정도 가치가 있지만 자신의 목적에 맞게 수정하는 예제로 훨씬 더 유용합니다. 함수는 모든 테이블에 사용할 수 있을 정도로 일반적이지만 트리거를 생성하는 동안 테이블 및 필드 이름(아래 설명 참조)을 지정해야 합니다.

아래 설명된 각 토토 사이트 그룹은 별도로 설치 가능한 확장 프로그램으로 제공됩니다.

F.41.1. refint — 참조 무결성 구현을 위한 함수#

check_primary_key()그리고check_foreign_key()외래 키 제약 조건을 확인하는 데 사용됩니다. (물론 이 토토 사이트은 내장된 외래 키 메커니즘으로 대체된 지 오래되었지만 모듈은 여전히 예로서 유용합니다.)

check_primary_key()참조 테이블을 확인합니다. 사용하려면, 생성하세요.삽입 또는 업데이트 후다른 테이블을 참조하는 테이블에서 이 함수를 사용하여 트리거합니다. 외래 키를 형성하는 참조 테이블의 열 이름, 참조 테이블 이름, 기본/고유 키를 형성하는 참조 테이블의 열 이름을 트리거 인수로 지정합니다. 여러 외래 키를 처리하려면 각 참조에 대한 트리거를 만듭니다.

check_foreign_key()참조된 테이블을 확인합니다. 사용하려면, 생성하세요.삭제 또는 업데이트 후다른 테이블에서 참조하는 테이블에서 이 함수를 사용하여 트리거합니다. 트리거 인수로 지정: 함수가 검사를 수행해야 하는 참조 테이블 수, 참조 키가 발견된 경우의 작업(계단식— 참조 행을 삭제하려면,제한— 참조 키가 존재하는 경우 트랜잭션을 중단합니다.setnull— 참조 키 필드를 null로 설정), 기본/고유 키를 형성하는 트리거된 테이블의 열 이름, 참조 테이블 이름 및 열 이름(첫 번째 인수로 지정된 참조 테이블 수만큼 반복됨). 기본/고유 키 열은 NOT NULL로 표시되어야 하며 고유 인덱스가 있어야 합니다.

이러한 트리거가 다른 트리거에서 실행되는 경우 참고이전트리거하면 예기치 않게 실패할 수 있습니다. 예를 들어, 사용자가 row1을 삽입한 다음이전트리거는 row2를 삽입하고 다음을 사용하여 트리거를 호출합니다.check_foreign_key(), 그check_foreign_key()함수는 row1을 볼 수 없으며 실패합니다.

다음에 예가 있습니다.refint.example.

F.41.2. autoinc — 필드 자동 증가를 위한 함수#

자동 증가()은 시퀀스의 다음 값을 정수 필드에 저장하는 트리거입니다. 이는 내장된 것과 일부 겹치는 부분이 있습니다.직렬 열기능이지만 동일하지 않습니다. 트리거는 해당 값이 처음에 0 또는 null인 경우(행을 삽입하거나 업데이트한 SQL 문의 작업 이후)에만 필드 값을 대체합니다. 또한 시퀀스의 다음 값이 0인 경우,다음값()0이 아닌 값을 얻기 위해 두 번째로 호출됩니다.

사용하려면 다음을 만드세요.삽입 전(또는 선택적으로삽입 또는 업데이트 전)는 이 함수를 사용하여 트리거됩니다. 두 개의 트리거 인수, 즉 수정할 정수 열의 이름과 값을 제공할 시퀀스 개체의 이름을 지정합니다. (실제로 두 개 이상의 자동 증가 열을 업데이트하려는 경우 이러한 이름 쌍을 원하는 만큼 지정할 수 있습니다.)

다음에 예가 있습니다.autoinc.example.

F.41.3. insert_username — 테이블을 변경한 사람을 추적하는 함수#

insert_username()은 현재 사용자의 이름을 텍스트 필드에 저장하는 트리거입니다. 이는 테이블 내의 특정 행을 마지막으로 수정한 사람을 추적하는 데 유용할 수 있습니다.

사용하려면 다음을 만드세요.삽입 전및/또는업데이트이 함수를 사용하여 트리거합니다. 단일 트리거 인수(수정할 텍스트 열의 이름)를 지정합니다.

다음에 예가 있습니다.insert_username.example.

F.41.4. moddatetime — 마지막 수정 시간을 추적하는 함수#

moddatetime()은 현재 시간을 a에 저장하는 트리거입니다.타임스탬프필드. 이는 테이블 내 특정 행의 마지막 수정 시간을 추적하는 데 유용할 수 있습니다.

사용하려면 다음을 만드세요.업데이트 전이 함수를 사용하여 트리거합니다. 단일 트리거 인수(수정할 열의 이름)를 지정합니다. 열은 유형이어야 합니다.타임스탬프또는시간대가 포함된 타임스탬프.

다음에 예가 있습니다.moddatetime.example.

수정사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.