Postgresql 8.2.23 Tài liệu | ||||
---|---|---|---|---|
prev | Backward nhanh | Chuyển tiếp nhanh | NEXT |
SPI_EXECUTE
thực thi
kèo bóng đá cúp c2 SQL được chỉ định choĐếmhàng.
Nếu nhưread_onlylàtrue, 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_EXECUTE
Trả 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_onlylàSai, SPI_EXECUTE
Tă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_onlylàTRUE, SPI_EXECUTE
Khô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ổvà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_finish
Giả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
.
Chuỗi chứa kèo bóng đá cúp c2 để thực thi
TRUE15502_15536
Số lượng hàng tối đa để xử lý hoặc 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ề:
Nếu AChọn(nhưng khôngChọn vào) đã được kèo bóng đá cúp c2
Nếu AChọn vàowas được kèo bóng đá cúp c2 hiện
Nếu mộtChènđã được kèo bóng đá cúp c2
Nếu AXóađã được kèo bóng đá cúp c2
Nếu mộtCập nhậtđã được kèo bóng đá cúp c2
Nếu mộtChèn trả vềwas được kèo bóng đá cúp c2 hiện
Nếu AXóa trả về17089_17112
Nếu mộtCập nhật trả vềwas được kèo bóng đá cúp c2 hiện
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ề:
nếukèo bóng đá cúp c2lànullhoặcĐếmIS nhỏ hơn 0
nếuSao chép vào stdouthoặcSao chép từ StdinĐã được cố gắng
nếukhai báo, ĐónghoặcFetchwas Đã thử
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 đó)
Nếu loại kèo bóng đá cúp c2 không xác định (không nên xảy ra)
Nếu được gọi từ một thủ tục không kết nối
Các chức năngSPI_EXECUTE
,
SPI_EXEC
, SPI_EXECUTE_PLAN
vàSPI_EXECP
Thay đổi cảSPI_Procedvàspi_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_EXECUTE
hoặc một chức năng liên quan
qua các cuộc gọi sau.