토토 사이트 추천 - 명령 실행
int 토토 사이트 추천 (const char *명령
, boolread_only
, Longcount
)
토토 사이트 추천
지정된 SQL 명령을 실행합니다count
행. 만약에read_only
istrue
, 명령은 읽기 전용이어야하며 실행 오버 헤드가 다소 감소해야합니다.
이 함수는 연결된 C 함수에서만 호출 할 수 있습니다.
ifcount
ZERO는 0이면 적용되는 모든 행에 대해 명령이 실행됩니다. 만약에count
| 0보다 크면count
행이 검색됩니다. a와 마찬가지로 카운트에 도달하면 실행이 중지됩니다.Limit
쿼리에 대한 조항. 예를 들어,
토토 사이트 추천 ( "선택 * From Foo", True, 5);
테이블에서 최대 5 행을 검색합니다. 이러한 제한은 명령이 실제로 행을 반환 할 때만 유효합니다. 예를 들어,
토토 사이트 추천 ( "foo에 삽입 *에서 선택 *에서 삽입", false, 5);
모든 행을 삽입합니다bar
, 무시count
매개 변수. 그러나
토토 사이트 추천 ( "foo에 삽입 * 선택 *에서 Bar returning *", False, 5);
5 열이 삽입되기 때문에 최대 5 행이 삽입됩니다.반환
결과 행이 검색되었습니다.
하나의 문자열로 여러 명령을 전달할 수 있습니다;토토 사이트 추천
마지막으로 실행 된 명령의 결과를 반환합니다. 그만큼count
한계는 각 명령에 개별적으로 적용됩니다 (마지막 결과 만 실제로 반환 되더라도). 한계는 규칙에 의해 생성 된 숨겨진 명령에 적용되지 않습니다.
whenread_only
isfalse
, 토토 사이트 추천
명령 카운터를 증가시키고 새로 계산합니다스냅 샷문자열에서 각 명령을 실행하기 전에. 현재 트랜잭션 격리 레벨이 인 경우 스냅 샷이 실제로 변경되지 않습니다.SERIALIZALE
또는반복 가능한 읽기
하지만Committed 읽기
모드 스냅 샷 업데이트를 통해 각 명령은 다른 세션에서 새로 커밋 된 트랜잭션의 결과를 볼 수 있습니다. 명령이 데이터베이스를 수정하는 경우 일관된 동작에 필수적입니다.
언제read_only
istrue
, 토토 사이트 추천
스냅 샷 또는 명령 카운터를 업데이트하지 않으며 일반 만 허용select
명령 문자열에 표시되는 명령. 명령은 주변 쿼리에 대해 이전에 설정된 스냅 샷을 사용하여 실행됩니다. 이 실행 모드는 명령 당 오버 헤드를 제거하여 읽기/쓰기 모드보다 다소 빠릅니다. 또한 진정으로 허용안정적인제작할 기능 : 연속 실행이 모두 동일한 스냅 샷을 사용하므로 결과에 변화가 없을 것입니다..
SPI를 사용하여 단일 함수 내에서 읽기 전용 및 읽기 쓰기 명령을 혼합하는 것은 일반적으로 현명하지 않습니다. 읽기 전용 쿼리는 읽기 쓰기 쿼리로 수행 된 데이터베이스 업데이트의 결과를 볼 수 없기 때문에 매우 혼란스러운 동작을 초래할 수 있습니다..
(마지막) 명령이 실행 된 실제 행 수는 글로벌 변수에서 반환됩니다SPI_PROCESSED
. 함수의 반환 값이 인 경우spi_ok_select
, SPI_OK_INSERT_RETURNING
, spi_ok_delete_returning
, spi_ok_update_returning
또는spi_ok_merge_returning
, 그런 다음 글로벌 포인터를 사용할 수 있습니다spitupletable *spi_tuptable
결과 행에 액세스하려면. 일부 유틸리티 명령 (예 :설명
) 또한 ROW ROW SETS 및도 반환합니다.spi_tuptable
이 경우에도 결과를 포함합니다. 일부 유틸리티 명령 (COPY
, 테이블 작성
) 행 세트를 반환하지 않으므로spi_tuptable
는 null이지만 여전히 처리 된 행의 수를 반환합니다SPI_PROCESSED
.
구조spitupletable
따라서 정의됩니다.
typedef structupletable / * 공공 회원 */ tupledesc tupdesc; / * 튜플 디스크립터 */ heppuple *vals; / * 튜플 배열 */ UINT64 Numvals; / * 유효한 튜플 수 */ / * 외부 발신자를위한 것이 아닌 개인 회원 */ UINT64 할당; / * VALS 배열의 길이 */ MemoryContext tuptabcxt; / * 결과 테이블의 메모리 컨텍스트 */ 다음에 slist_node; / * 내부 부기 링크 */ subrantactionId subid; / * tuptable이 만들어진 subxact */ spitupletable;
필드Tupdesc
, vals
및numvals
SPI 발신자가 사용할 수 있습니다. 나머지 필드는 내부입니다.vals
는 행에 대한 많은 포인터 배열입니다. 행의 수는에 의해 제공됩니다.numvals
(다소 역사적 이유로,이 카운트도 반환됩니다SPI_PROCESSED
).Tupdesc
행을 다루는 SPI 기능으로 전달할 수있는 행 디스크립터입니다.
SPI_FINISH
모든 것을 해방spitupletable
현재 C 함수 동안 할당 된. 전화를 통해 완료된 경우 특정 결과 테이블을 더 일찍 자유롭게 할 수 있습니다.SPI_FREETUPTABLE
.
const char *명령
실행 할 명령 포함
boolread_only
true
읽기 전용 실행
Longcount
반환 할 최대 행 수, 또는0
한계 없음
명령의 실행이 성공적이면 다음 (비 음성) 값 중 하나가 반환됩니다.
spi_ok_select
aselect
(하지만선택
) 실행
spi_ok_selinto
if a선택
실행
SPI_OK_INSERT
IF an삽입
실행
SPI_OK_DELETE
if a삭제
실행
spi_ok_update
IF an업데이트
실행
SPI_OK_MERGE
if a병합
실행
spi_ok_insert_returning
IF an리턴 삽입
실행
spi_ok_delete_returning
if a반환 삭제
실행
spi_ok_update_returning
IF an업데이트 반환
실행
spi_ok_merge_returning
if a합병 반환
실행
spi_ok_utility
유틸리티 명령 인 경우 (예 :테이블 생성
) 실행
Spi_ok_rewritten
명령이 다른 종류의 명령으로 다시 작성된 경우 (예 :업데이트
삽입
) by토토 사이트 추천 캔 : 문서 : 17 : 39 장.
오류에서 다음 음의 값 중 하나가 반환됩니다.
SPI_ERROR_ARGUMENT
if명령
isNULL
또는count
0보다 작습니다
SPI_ERROR_COPY
ifstdout에 복사
또는stdin에서 복사
시도되었습니다
SPI_ERROR_TRANSACTION
트랜잭션 조작 명령이 시도 된 경우 (시작
, 커밋
, 롤백
, SavePoint
, 거래 준비
, 준비
, 롤백 준비
또는 그 변형)
SPI_ERROR_OPUNKNOWN
명령 유형을 알 수없는 경우 (발생하지 않아야 함)
SPI_ERROR_UNCONNECT
연결되지 않은 C 함수에서 호출 된 경우
모든 SPI Query-Execution Functions Set 두 가지SPI_processed
andSPI_TUPTable
(구조의 내용이 아닌 포인터 만). 결과 테이블에 액세스 해야하는 경우이 두 가지 글로벌 변수를 로컬 C 함수 변수에 저장하십시오.토토 사이트 추천
또는 이후 호출에 걸친 다른 쿼리-실행 함수.
문서에 올바른 것이없는 것이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면