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 / 7.4 / 7.3 / 7.2 / 7.1
Tài liệu này dành cho phiên bản không được hỗ trợ của tỷ lệ kèo bóng đá.
Bạn có thể muốn xem cùng một trang chohiệ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ế.

Chương 36.PL/PGSQL - SQLNgôn ngữ tỷ lệ kèo bóng đá

PL/PGSQLlà một tảitỷ lệ kèo bóng đáHệ thống cơ sở dữ liệu. Các mục tiêu thiết kếPL/PGSQLđã tạo ra một

  • có thể được sử dụng để tạo các chức năng và kích hoạt

  • Thêm cấu trúc điều khiển vàoSQLNgôn ngữ,

  • Có thể thực hiện các tính toán phức tạp,

  • kế thừa tất cả các loại, chức năng do người dùng xác định

  • có thể được xác định để được máy chủ tin cậy,

  • rất dễ sử dụng.

Ngoại trừ các chức năng chuyển đổi và đầu ra đầu vào/đầu raPL/PGSQL. Ví dụ, có thể

36.1. Tổng quan

ThePL/PGSQLngười xử lý gọiPL/PGSQLTuyên bốSQLBiểu thức vàSQLCác lệnh được sử dụng trong hàm không

như mỗi biểu thức vàSQLLệnh được sử dụng đầu tiên trong chức năng,PL/PGSQLThông dịch viênSPINgười quản lýspi_preparespi_saveplanchức năng).Các lượt truy cập tiếp theo đến biểu thức đó hoặcPL/PGSQLHàm. Một bất lợi là

một lầnPL/PGSQLđã làm một

Tạo hàm Fopulation () trả về số nguyên dưới dạng $$

Nếu bạn thực thi chức năng trên, nó sẽ tham khảo OIDmy_function ()Trongbiểu diễnTuyên bố. Sau này, nếu bạn thả vàmy_function (), sau đóFopulation ()sẽ không thểmy_function ()nữa. Bạnđông dân ()hoặc ít nhất là bắt đầu một cơ sở dữ liệu mớiTạo hoặcKhi cập nhật định nghĩa củamy_function(Khi hàm là"Thay thế", OID của nó không phải là

PL/PGSQLLưuPL/PGSQLHàm phảiPL/PGSQL thực thiTuyên bố - với giá xây dựng kế hoạch thực thi mới

Lưu ý:ThePL/PGSQL thực thiCâu lệnh không liên quan đếnthực thiSQLtỷ lệ kèo bóng đáMáy chủ. Máy chủthực thiTuyên bố không thể được sử dụngPL/PGSQLchức năng

36.1.1. Ưu điểm của việc sử dụngPL/PGSQL

SQLlà ngôn ngữtỷ lệ kèo bóng đávà hầu hết khácSQLCâu lệnh phải được thực thi

Điều đó có nghĩa là ứng dụng khách của bạn phải gửi mỗi

vớiPL/PGSQLBạn có thểbên trongCơ sở dữ liệu

  • Loại bỏ các chuyến đi vòng bổ sung giữa máy khách

  • Kết quả trung gian mà khách hàng không cần làm

  • Không cần các vòng truy vấn bổ sung

Điều này có thể cho phép tăng hiệu suất đáng kể khi

Ngoài ra, vớiPL/PGSQLBạn

36.1.2. Đối số được hỗ trợ và kết quả

Các chức năng được viết bằngPL/PGSQLcó thể chấp nhận làm đối số bất kỳPL/PGSQLchức năng là trả vềRecord, có nghĩa là kết quả làPhần.

PL/PGSQLCác chức năng có thểAnyEuityAnyArray. Các loại dữ liệu thực tế được xử lý bởi mộtPhần. Một ví dụ được hiển thị trongPhần.

PL/PGSQLHàm có thể"SET"hoặc bảng, của bất kỳ loại dữ liệu nào họ có thểtrở lại tiếp theocho

Cuối cùng, APL/PGSQLHàm có thể được tuyên bố trả lạivoidNếu nó không có giá trị trả về hữu ích.

Lưu ý: PL/PGSQLHiện không có hỗ trợ đầy đủ cho các loại miền: NóPL/PGSQLchức năng như

PL/PGSQLchức năng có thể

Ví dụ cụ thể xuất hiện trongPhầnPhần 36.7.1.