Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
8715_8771hiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

kèo bóng đá cúp c2SPI_EXECUTE

tên

spi_execute-thực thi kèo bóng đá cúp c2

Synopsis

10156_10188kèo bóng đá cúp c2, Boolread_only, dàiĐếm)

Mô tả

SPI_EXECUTEthực thi kèo bóng đá cúp c2 SQL được chỉ định choĐếmhàng. Nếu nhưread_onlytrue, kèo bóng đá cúp c2 phải chỉ đọc và thực thi Chi phí giảm phần nào.

Hàm này chỉ có thể được gọi từ một kết nối thủ tục.

nếuĐếmlà 0 thì kèo bóng đá cúp c2 được thực hiện cho tất cả các hàng mà nó áp dụng cho. Nếu nhưĐếmlớn hơn 0, sau đó số lượng hàng trong đó kèo bóng đá cúp c2 sẽ được thực thi bị hạn chế (giống nhưGiới hạnmệnh đề). Ví dụ,

spi_execute ("chèn vào foo chọn * từ thanh", false, 5);

sẽ cho phép nhiều nhất 5 hàng được chèn vào bảng.

Bạn có thể chuyển nhiều kèo bóng đá cúp c2 trong một chuỗi.SPI_EXECUTETrả về kết quả cho kèo bóng đá cúp c2 thực hiện cuối cùng. TheĐếmGiới hạn áp dụng cho mỗi kèo bóng đá cúp c2 một cách riêng biệt, nhưng nó không được áp dụng cho ẩn các kèo bóng đá cúp c2 được tạo bởi các quy tắc.

Khiread_onlySai, SPI_EXECUTETăng bộ đếm kèo bóng đá cúp c2 và tính toán mớiSnapshotTrước khi thực thi mỗi kèo bóng đá cúp c2 trong sợi dây. Ảnh chụp không thực sự thay đổi nếu hiện tại Mức cách cô lập giao dịch là11927_11941, nhưng trongĐọc TẬN TỤYChế độ Cập nhật ảnh chụp nhanh cho phép mỗi kèo bóng đá cúp c2 Xem kết quả của các giao dịch mới cam kết từ các giao dịch khác phiên. Điều này là điều cần thiết cho hành vi nhất quán khi Các kèo bóng đá cúp c2 đang sửa đổi cơ sở dữ liệu.

Khiread_onlyTRUE, SPI_EXECUTEKhông cập nhật ảnh chụp nhanh hoặc bộ đếm kèo bóng đá cúp c2 và nó chỉ cho phép đơn giảnChọnkèo bóng đá cúp c2 đến xuất hiện trong chuỗi kèo bóng đá cúp c2. Các kèo bóng đá cúp c2 được thực thi bằng cách sử dụng Snapshot được thiết lập trước đây cho truy vấn xung quanh. Cái này Chế độ thực thi có phần nhanh hơn chế độ đọc/ghi do loại bỏ trên đầu một kèo bóng đá cúp c2. Nó cũng cho phép thực sựổn định12766_12895

Nói chung là không khôn ngoan khi trộn chỉ đọc và đọc-viết các kèo bóng đá cúp c2 trong một hàm duy nhất bằng SPI; Điều đó có thể dẫn đến hành vi rất khó hiểu, vì các truy vấn chỉ đọc sẽ không Xem kết quả của bất kỳ bản cập nhật cơ sở dữ liệu nào được thực hiện bởi read-write truy vấn.

Số lượng hàng thực tế mà kèo bóng đá cúp c2 (cuối cùng) là được thực hiện được trả về trong biến toàn cầuSPI_Proced. Nếu giá trị trả về của hàm làspi_ok_select, spi_ok_insert_returning, spi_ok_delete_returninghoặcspi_ok_update_returning, sau đó bạn có thể sử dụng Con trỏ toàn cầuSpitupletable *Spi_tupableĐể truy cập các hàng kết quả. Một số tiện ích các kèo bóng đá cúp c2 (chẳng hạn nhưGiải thích) cũng trở lại Hàng tập vàspi_tupablesẽ chứa kết quả trong những trường hợp này quá.

Cấu trúcSpitupletableIS được xác định như vậy:

Cấu trúc typedef

    MemoryContext Tuptabcxt;    / * bối cảnh bộ nhớ của bảng kết quả */
    UINT32 được phân bổ;        / * số lượng vals được phân bổ */
    Uint32 miễn phí;           / * số lượng vals miễn phí */
    Tuppledesc Tupdesc;        / * bộ mô tả hàng */
    Nặng trĩu *vals;           / * hàng */
 Spitupletable;

Valslà một loạt các con trỏ để hàng. (Số lượng mục hợp lệ được đưa ra bởiSPI_Proced.)TUPDESClà một mô tả hàng mà bạn có thể vượt qua đến các chức năng SPI liên quan đến các hàng.TUPTABCXT, được phân bổmiễn phílà các trường nội bộ không được sử dụng để sử dụng bởi người gọi SPI.

spi_finishGiải phóng tất cảSpitupletableS được phân bổ trong thời gian hiện tại thủ tục. Bạn có thể giải phóng một bảng kết quả cụ thể trước đó, nếu bạn được kèo bóng đá cúp c2 hiện với nó, bằng cách gọispi_freetupable.

Đối số

const char *kèo bóng đá cúp c2

Chuỗi chứa kèo bóng đá cúp c2 để thực thi

boolread_only

TRUE15502_15536

LongĐếm

Số lượng hàng tối đa để xử lý hoặc trả lại

Giá trị trả lại

Nếu việc thực thi kèo bóng đá cúp c2 thành công thì một trong những Các giá trị sau (không âm) sẽ được trả về:

spi_ok_select

Nếu AChọn(nhưng khôngChọn vào) đã được kèo bóng đá cúp c2

spi_ok_selinto

Nếu AChọn vàowas được kèo bóng đá cúp c2 hiện

spi_ok_insert

Nếu mộtChènđã được kèo bóng đá cúp c2

spi_ok_delete

Nếu AXóađã được kèo bóng đá cúp c2

SPI_OK_UPDATE

Nếu mộtCập nhậtđã được kèo bóng đá cúp c2

spi_ok_insert_returning

Nếu mộtChèn trả vềwas được kèo bóng đá cúp c2 hiện

spi_ok_delete_returning

Nếu AXóa trả về17089_17112

spi_ok_update_returning

Nếu mộtCập nhật trả vềwas được kèo bóng đá cúp c2 hiện

spi_ok_utility

Nếu kèo bóng đá cúp c2 tiện ích (ví dụ:Tạo BÀN) đã được kèo bóng đá cúp c2

Khi lỗi, một trong các giá trị âm sau là đã trả về:

spi_error_argument

nếukèo bóng đá cúp c2nullhoặcĐếmIS nhỏ hơn 0

spi_error_copy

nếuSao chép vào stdouthoặcSao chép từ StdinĐã được cố gắng

spi_error_cursor

nếukhai báo, ĐónghoặcFetchwas Đã thử

spi_error_transaction

Nếu có bất kỳ kèo bóng đá cúp c2 nào liên quan đến thao tác giao dịch là Đã thử (bắt đầu, cam kết, rollback, SavePoint, Chuẩn bị giao dịch, Cam kết đã chuẩn bị, Chuẩn bị rollbackhoặc bất kỳ biến thể nào của đó)

spi_error_opunknown

Nếu loại kèo bóng đá cúp c2 không xác định (không nên xảy ra)

spi_error_unconnected

Nếu được gọi từ một thủ tục không kết nối

Ghi chú

Các chức năngSPI_EXECUTE, SPI_EXEC, SPI_EXECUTE_PLANSPI_EXECPThay đổi cảSPI_Procedspi_tupable(chỉ là con trỏ, không phải nội dung của cấu trúc). Lưu hai biến toàn cầu này vào địa phương Các biến thủ tục nếu bạn cần truy cập bảng kết quả củaSPI_EXECUTEhoặc một chức năng liên quan qua các cuộc gọi sau.