이 문서는 지원되지 않는 버전의 스포츠 토토 사이트을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다스포츠 토토 사이트 : 문서 : 17 : F.39. SPI - 서버 프로그래밍 인터페이스 젠 토토/예제버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

F.33. SPI

SPI모듈 제공 SPI 및 트리거 사용의 몇 가지 실행 가능한 예. 이들 함수는 그 자체로 어떤 가치가 있으며, 심지어 자신의 목적을 위해 수정하는 예로 더 유용합니다. 그만큼 기능은 모든 테이블과 함께 사용하기에 충분히 일반적이지만 테이블 및 필드 이름 (아래 설명대로)을 지정해야합니다. 방아쇠 만들기.

아래에 설명 된 각 기능 그룹은 다음과 같이 제공됩니다. 별도로 설치 가능한 확장.

F.33.1. 리핀 - 참조 구현 기능 진실성

check_primary_key ()andcheck_foreign_key ()익숙합니다 외국의 주요 제약 조건을 확인하십시오. (이 기능은 길다 내장 된 외국 키 메커니즘으로 대체 된 이후 코스이지만 모듈은 여전히 ​​예로 유용합니다.)

check_primary_key ()확인을 확인합니다 참조 스포츠 토토 사이트. 사용하려면 A 생성전 삽입 또는 업데이트스포츠 토토 사이트 에서이 함수를 사용하는 트리거 다른 스포츠 토토 사이트 참조. 트리거 인수로 지정하십시오. 외국을 형성하는 참조 스포츠 토토 사이트의 열 이름 키, 참조 스포츠 토토 사이트 이름 및 열 이름은 기본/고유 키를 형성하는 참조 스포츠 토토 사이트. 처리하려면 다중 외국 키, 각 참조에 대한 트리거를 만듭니다.

check_foreign_key ()참조 스포츠 토토 사이트. 사용하려면 A 생성전 삭제 또는 업데이트스포츠 토토 사이트 에서이 함수를 사용하는 트리거 다른 표에 의해 참조됩니다. 트리거 인수로 지정하십시오. 함수가 필요한 참조 스포츠 토토 사이트의 수 참조 키가 발견되는 경우 점검을 수행합니다. (캐스케이드- 참조를 삭제하려면 열,제한- 거래 중단 참조 키가 존재하는 경우setNull- 참조 키 필드를 NULL로 설정하려면 트리거 된 스포츠 토토 사이트의 기본/고유 키를 형성하는 열 이름 참조 스포츠 토토 사이트 이름 및 열 이름 (많은 경우 반복 첫 번째 인수에 의해 지정된 참조 표). 메모 기본/고유 키 열은 NULL이 아닌 것으로 표시되어야합니다. 고유 한 색인이 있어야합니다.

에 예가 있습니다.Refint.example.

F.33.2. TimeTravel - 시간 여행 구현 기능

오래 전,스포츠 토토 사이트인서트 및 삭제를 유지하는 내장 시간 여행 기능 각 튜플에 대한 시간. 이것은 이것들을 사용하여 모방 할 수 있습니다 기능. 이 기능을 사용하려면 표 2에 추가해야합니다. 열Abstime날짜를 저장하려면 입력하십시오 튜플을 삽입하고 (start_date) 변경/삭제 될 때 (stop_date) :

스포츠 토토 사이트 생성 mytab (
        ... ...
        start_date abstime,
        stop_date abstime
        ... ...
);

열은 원하는대로 명명 될 수 있지만 이것에서 토론 우리는 그들을 start_date 및 stop_date라고 부릅니다.

새 행이 삽입되면 start_date는 일반적으로 현재 시간으로 설정하고 stop_date toInfinity. 트리거가 자동으로됩니다 삽입 된 데이터에 NULLS가 포함 된 경우 이러한 값을 대체합니다. 이 열. 일반적으로 명시적인 비 널 데이터를 삽입합니다 이 열은 다시로드 된 덤프시에만 수행해야합니다 데이터.

stop_date와 같은 튜플Infinityare"유효합니다 지금"및 수정할 수 있습니다. 유한 한 튜플 stop_date는 더 이상 수정할 수 없습니다 - 트리거는 방지합니다. 그것. (그렇게해야한다면 시간 여행을 끄울 수 있습니다. 아래 표시.)

수정 가능한 행의 경우, stop_date 만 업데이트하여 업데이트되는 튜플은 (현재 시간으로) 변경 될 것입니다. 수정 된 데이터와 튜플이 삽입됩니다. start_date in 이 새로운 튜플은 현재 시간으로 설정되고 stop_date toInfinity.

삭제는 실제로 튜플을 제거하지 않고 세트 만 설정합니다. 정지 _date에서 현재 시간입니다.

튜플 쿼리"유효한 지금", 포함하다stop_date = 'Infinity'쿼리는 어디에조 상태입니다. (당신은 그것을 포함시키고 싶을 수도 있습니다 마찬가지로, 당신은 과거의 어느 곳에서나 유효한 튜플을 쿼리 할 수 ​​있습니다. start_date 및 stop_date에서 적절한 조건을 가진 시간.

timeTravel ()장군입니다 이 동작을 지원하는 트리거 기능. a 만들기삽입 또는 업데이트 또는 삭제 전각 타임 트래블 스포츠 토토 사이트 에서이 함수를 사용하는 트리거. 두 가지 트리거 인수를 지정하십시오 : 실제 이름 start_date 및 stop_date 열. 선택적으로, 당신은 지정할 수 있습니다 1 ~ 3 개의 인수가 유형텍스트. 방아쇠가 저장됩니다 이 열 중 첫 번째 열로 현재 사용자의 이름 삽입, 업데이트 중 두 번째 열, 세 번째 열은 삭제.

set_timeTravel ()허용합니다 스포츠 토토 사이트의 시간 여행을 켜거나 끄십시오.set_timeTravel ( 'mytab', 1)tt를 켜십시오 스포츠 토토 사이트Mytab. set_timeTravel ( 'mytab', 0)TT를 끄겠습니다 스포츠 토토 사이트Mytab. 두 경우 모두 노인 상태 가보고됩니다. TT가 꺼지는 동안 수정할 수 있습니다 start_date 및 stop_date 열을 자유롭게. 온/꺼짐에 유의하십시오 상태는 현재 데이터베이스 세션에 로컬입니다. 세션은 항상 모든 스포츠 토토 사이트에 대해 TT로 시작됩니다.

get_timeTravel ()반환합니다 변경하지 않고 스포츠 토토 사이트의 TT 상태.

예제가 있습니다timeTravel.example.

F.33.3. Autoinc - 자동화 분야의 기능

autoinc ()트리거입니다 시퀀스의 다음 값을 정수 필드에 저장합니다. 이것 내장과 약간의 겹침"시리얼 열"기능이지만 동일하지는 않습니다.autoinc ()시도를 무시합니다 인서트 중에 다른 필드 값을 대체하고 선택적으로 그것은 동안 필드를 증가시키는 데 사용될 수 있습니다. 업데이트도

사용하려면 A 생성삽입 전(또는 선택적으로삽입 또는 업데이트 전) 이 기능을 사용하여 트리거. 두 가지 트리거 인수를 지정합니다 수정 될 정수 열의 이름과 값을 공급하는 시퀀스 객체. (실제로, 당신은 할 수 있습니다 원하는 경우 해당 이름의 여러 쌍을 지정하십시오. 하나 이상의 자동화 열을 업데이트하십시오.)

예제가 있습니다autoinc.example.

F.33.4. insert_username - 누가 변경했는지 추적하기위한 함수 스포츠 토토 사이트

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

사용하려면 A 생성삽입 전및/또는업데이트이것을 사용하는 트리거 기능. 단일 트리거 인수 : 이름의 이름을 지정하십시오 수정할 텍스트 열.

예제가 있습니다insert_username.example.

F.33.5. ModdateTime - 마지막 수정 추적을위한 기능 시간

​​moddateTime ()트리거입니다 현재 시간을 A에 저장합니다.타임 스탬프필드. 추적에 유용 할 수 있습니다 특정 행의 마지막 수정 시간 내에서 스포츠 토토 사이트.

사용하려면 A 생성업데이트 전이 함수를 사용한 트리거. 단일 트리거 인수를 지정합니다. 수정 될 열의 이름. 열은이어야합니다 유형타임 스탬프또는시간대가있는 타임 스탬프.

예제가 있습니다moddateMe.example.