SPI_EXECUTE
Thực thi kèo bóng đá việt nam SQL được chỉ định choĐếmhàng. Nếu nhưread_onlylàTRUE, kèo bóng đá việt nam phải chỉ đọc và chi phí thực thi bị giảm một chút.
Hàm này chỉ có thể được gọi từ một thủ tục được kết nối.
nếuĐếmbằng 0 thì kèo bóng đá việt nam được thực thi cho tất cả các hàng mà nó áp dụng. Nếu nhưĐếmlớn hơn 0, thì không quáCounthàng sẽ được truy xuất; kèo bóng đá việt nam hiện dừng khi đạt được số đếm, giống như thêm mộtgiới hạnmệnh đề cho truy vấn. Ví dụ,
spi_execute ("chọn * từ foo", true, 5);
sẽ truy xuất tối đa 5 hàng từ bảng. Lưu ý rằng giới hạn như vậy chỉ có hiệu lực khi kèo bóng đá việt nam thực sự trả về hàng. Ví dụ,
spi_execute ("chèn vào foo chọn * từ thanh", false, 5);
Chèn tất cả các hàng từBar, bỏ quaĐếmTham số. Tuy nhiên, với
spi_execute ("chèn vào foo chọn * từ thanh trả lại *", false, 5);
nhiều nhất là 5 hàng sẽ được chèn, vì việc kèo bóng đá việt nam sẽ dừng sau lần thứ nămTrở vềHàng kết quả được truy xuất.
Bạn có thể chuyển nhiều kèo bóng đá việt nam trong một chuỗi;SPI_EXECUTE
Trả về kết quả cho kèo bóng đá việt nam được thực thi cuối cùng. TheĐếmGiới hạn áp dụng cho mỗi kèo bóng đá việt nam riêng biệt (mặc dù chỉ có kết quả cuối cùng sẽ thực sự được trả về). Giới hạn không được áp dụng cho bất kỳ kèo bóng đá việt nam ẩn nào được tạo bởi các quy tắc.
Khiread_onlylàSai, SPI_EXECUTE
Tăng bộ đếm kèo bóng đá việt nam và tính toán một bộ đếm mớiSnapshotTrước khi thực thi mỗi kèo bóng đá việt nam trong chuỗi. Ảnh chụp không thực sự thay đổi nếu mức cách ly giao dịch hiện tại làserializablehoặcĐọc lặp lại, nhưng trongĐọc cam kếtChế độ Cập nhật ảnh chụp nhanh cho phép mỗi kèo bóng đá việt nam xem kết quả của các giao dịch mới cam kết từ các phiên khác. Điều này rất cần thiết cho hành vi nhất quán khi các kèo bóng đá việt nam đang sửa đổi cơ sở dữ liệu.
12658_12665read_onlylàTRUE, SPI_EXECUTE
Không cập nhật ảnh chụp nhanh hoặc bộ đếm kèo bóng đá việt nam và nó chỉ cho phép đơn giảnChọnCác kèo bóng đá việt nam xuất hiện trong chuỗi kèo bóng đá việt nam. Các kèo bóng đá việt nam được thực thi bằng cách sử dụng ảnh chụp nhanh được thiết lập trước đó cho truy vấn xung quanh. Chế độ thực thi này nhanh hơn một chút so với chế độ đọc/ghi do loại bỏ chi phí trên mỗi kèo bóng đá việt nam. Nó cũng cho phép thực sựổn địnhCác chức năng sẽ được xây dựng: Vì các kèo bóng đá việt nam liên tiếp sẽ sử dụng cùng một ảnh chụp nhanh, sẽ không có thay đổi nào trong kết quả.
Nói chung là không khôn ngoan khi trộn các kèo bóng đá việt nam chỉ đọc và đọc-ghi trong một chức năng 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 thấy 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 các truy vấn đọc-ghi.
Số lượng hàng thực tế mà kèo bóng đá việt nam (cuối cùng) được thực thi đượ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, thì bạn có thể sử dụng con trỏ toàn cầuSpitupletable *spi_tuptableĐể truy cập các hàng kết quả. Một số kèo bóng đá việt nam tiện ích (chẳng hạn nhưGiải thích) cũng trả về các bộ hàng vàSPI_TUPTABLEcũng sẽ chứa kết quả trong những trường hợp này. Một số kèo bóng đá việt nam tiện ích (Copy, Tạo bảng dưới dạng) Không trả lại một bộ hàng, vì vậySPI_TUPTABLElà null, nhưng chúng vẫn trả về số lượng hàng được xử lý trongspi_proced.
Cấu trúcSpitupletableđượ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ỏ đến các hàng. (Số lượng mục hợp lệ được đưa ra bởiSPI_Proced.)TUPDESClà một bộ mô tả hàng mà bạn có thể chuyển đến các chức năng SPI liên quan đến 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 quy trình hiện tại. Bạn có thể giải phóng một bảng kết quả cụ thể trước đó, nếu bạn đã hoàn thành nó, bằng cách gọispi_freetupable
.
Chuỗi chứa kèo bóng đá việt nam để thực thi
TRUEđể kèo bóng đá việt nam hiện chỉ đọc
Số lượng hàng tối đa để trả về hoặc0không giới hạn
Nếu việc thực hiện kèo bóng đá việt nam thành công thì một trong các giá trị (không phân biệt) sau đây sẽ được trả về:
Nếu AChọn(nhưng khôngChọn vào) đã được kèo bóng đá việt nam
Nếu AChọn vàođã được kèo bóng đá việt nam
Nếu mộtChènđã được kèo bóng đá việt nam
Nếu AXóaĐã được kèo bóng đá việt nam
Nếu mộtCập nhậtđã được kèo bóng đá việt nam
Nếu mộtChèn trả vềđã được kèo bóng đá việt nam
Nếu AXóa trả vềđã được kèo bóng đá việt nam
Nếu mộtCập nhật trả vềđã được kèo bóng đá việt nam
Nếu kèo bóng đá việt nam tiện ích (ví dụ:Tạo bảng) đã được kèo bóng đá việt nam
Nếu kèo bóng đá việt nam được viết lại thành một loại kèo bóng đá việt nam khác (ví dụ:Cập nhậtTrở thànhChèn) bởi Aquy tắc.
Khi lỗi, một trong các giá trị âm sau được trả về:
nếukèo bóng đá việt namlànullhoặcĐếmnhỏ hơn 0
nếuSao chép vào stdouthoặcSao chép từ StdinĐã được cố gắng
Nếu một kèo bóng đá việt nam thao tác giao dịch được cố gắng (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 chúng)
Nếu loại kèo bóng đá việt nam 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
Tất cả các chức năng kèo bóng đá việt nam tế SPI truy vấn được đặtSPI_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 các biến thủ tục cục bộ 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 kèo bóng đá việt nam hiện truy vấn khác qua các cuộc gọi sau.