tỷ lệ kèo bóng đá tối nay là ngôn ngữ thủ tục có thể tải choPostgresHệ thống cơ sở dữ liệu.
Gói này ban đầu được viết bởi Jan Wieck.
Mục tiêu thiết kế của PL/PGSQL là tạo ra tỷ lệ kèo bóng đá tối nay tải trọng có thể tải Ngôn ngữ thủ tục mà
Có thể được sử dụng để tạo tỷ lệ kèo bóng đá tối nay chức năng và quy trình kích hoạt,
Thêm cấu trúc điều khiển vàoSQLNgôn ngữ,
Có thể thực hiện tỷ lệ kèo bóng đá tối nay tính toán phức tạp,
kế thừa tất cả tỷ lệ kèo bóng đá tối nay loại, chức năng và chức năng do người dùng xác định người vận hành,
có thể được xác định để được máy chủ tin tưởng,
rất dễ sử dụng.
Trình xử lý cuộc gọi PL/PGSQL phân tích tỷ lệ kèo bóng đá tối nay chức năng văn bản nguồn và tạo ra một cây hướng dẫn nhị phân bên trong lần đầu tiên, chức năng được gọi bởi một phụ trợ. Mã byte được sản xuất là được xác định trong trình xử lý cuộc gọi bởi ID đối tượng của hàm. Điều này đảm bảo rằng, việc thay đổi một hàm bằng một chuỗi thả/tạo sẽ có hiệu lực mà không cần thiết lập cơ sở dữ liệu mới sự liên quan.
cho tất cả tỷ lệ kèo bóng đá tối nay biểu thức vàSQLCâu lệnh được sử dụng trong hàm, trình thông dịch BYTECODE PL/PGSQL Tạo một kế hoạch thực hiện đã chuẩn bị bằng cách sử dụng tỷ lệ kèo bóng đá tối nay nhà quản lý SPI tỷ lệ kèo bóng đá tối nay hàm spi_prepare () và spi_saveplan (). Điều này được thực hiện đầu tiên thời gian, câu lệnh cá nhân được xử lý trong PL/PGSQL chức năng. Do đó, một chức năng với mã có điều kiện chứa nhiều tỷ lệ kèo bóng đá tối nay tuyên bố về tỷ lệ kèo bóng đá tối nay kế hoạch thực thi sẽ được yêu cầu, sẽ chỉ chuẩn bị và lưu những kế hoạch thực sự được sử dụng trong toàn bộ tuổi thọ của kết nối cơ sở dữ liệu.
Ngoại trừ tỷ lệ kèo bóng đá tối nay chức năng chuyển đổi và chuyển đổi đầu vào/đầu ra Đối với tỷ lệ kèo bóng đá tối nay loại do người dùng xác định, bất cứ điều gì có thể được xác định bằng ngôn ngữ C. tỷ lệ kèo bóng đá tối nay chức năng cũng có thể được thực hiện với PL/PGSQL. Có thể tạo tỷ lệ kèo bóng đá tối nay chức năng tính toán có điều kiện phức tạp và sau đó sử dụng chúng để Xác định tỷ lệ kèo bóng đá tối nay toán tử hoặc sử dụng chúng trong tỷ lệ kèo bóng đá tối nay chỉ số chức năng.
Ngôn ngữ PL/PGSQL không nhạy cảm. Tất cả tỷ lệ kèo bóng đá tối nay từ khóa và Định danh có thể được sử dụng ở phần trên và chữ thường hỗn hợp.
PL/PGSQL là ngôn ngữ định hướng khối. tỷ lệ kèo bóng đá tối nay khối được xác định là
[<< Nhãn ] [TUYÊN BỐKhai báo] BẮT ĐẦUCâuend;Có thể có bất kỳ số lượng phụ nào trong phần Tuyên bố của một khối. Subblocks có thể được sử dụng để ẩn tỷ lệ kèo bóng đá tối nay biến từ bên ngoài khối của tỷ lệ kèo bóng đá tối nay tuyên bố. tỷ lệ kèo bóng đá tối nay biến được khai báo trong tỷ lệ kèo bóng đá tối nay khai báo Phần trước một khối được khởi tạo thành tỷ lệ kèo bóng đá tối nay giá trị mặc định của chúng Mỗi khi khối được nhập, không chỉ một lần mỗi lần gọi chức năng.
Điều quan trọng là không hiểu sai ý nghĩa của bắt đầu/kết thúc để nhóm tỷ lệ kèo bóng đá tối nay câu lệnh trong PL/PGSQL và tỷ lệ kèo bóng đá tối nay lệnh cơ sở dữ liệu cho Kiểm soát giao dịch. tỷ lệ kèo bóng đá tối nay chức năng và quy trình kích hoạt không thể bắt đầu hoặc giao dịch cam kết vàPostgreskhông được lồng giao dịch.
Có hai loại bình luận trong PL/PGSQL. Một dấu gạch ngang kép '-' Bắt đầu một nhận xét kéo dài đến cuối dòng. Một '/*' bắt đầu Một bình luận khối kéo dài đến sự xuất hiện tiếp theo của '*/'. Khối Nhận xét không thể được lồng, nhưng tỷ lệ kèo bóng đá tối nay bình luận Double Dash có thể được đính kèm thành một bình luận khối và một dấu gạch ngang có thể ẩn bình luận khối DELIMITERS '/*' và '*/'.
Tất cả tỷ lệ kèo bóng đá tối nay biến, hàng và bản ghi được sử dụng trong một khối hoặc nó Subblocks phải được khai báo trong phần khai báo của một khối Ngoại trừ biến vòng lặp của vòng lặp vòng lặp trên một phạm vi của tỷ lệ kèo bóng đá tối nay giá trị số nguyên. tỷ lệ kèo bóng đá tối nay tham số được cung cấp cho hàm PL/PGSQL là Tự động khai báo với số nhận dạng thông thường $ n. tỷ lệ kèo bóng đá tối nay Tuyên bố có cú pháp sau:
Khai báo một biến của loại cơ sở được chỉ định. Nếu Biến được khai báo là hằng số, giá trị không thể thay đổi. Nếu không được chỉ định NULL, việc gán kết quả giá trị null trong một lỗi thời gian chạy. Vì giá trị mặc định của tất cả tỷ lệ kèo bóng đá tối nay biến là TheSQLgiá trị null, tất cả tỷ lệ kèo bóng đá tối nay biến được khai báo là không null cũng phải có giá trị mặc định được chỉ định.
Giá trị mặc định được đánh giá bao giờ chức năng là gọi điện. Vì vậy, việc gán 'Bây giờ' đến a Biến thuộc loạiDateTimekhiến biến có thời gian của hàm thực tế gọi, không phải khi chức năng được biên dịch trước mã byte.
Khai báo một hàng với cấu trúc của lớp đã cho. Lớp học Phải là một bảng hoặc khung nhìn hiện có của cơ sở dữ liệu. tỷ lệ kèo bóng đá tối nay tỷ lệ kèo bóng đá tối nay trường của hàng được truy cập trong ký hiệu dấu chấm. Tham số đến một hàm có thể là tỷ lệ kèo bóng đá tối nay loại tổng hợp (hoàn thành tỷ lệ kèo bóng đá tối nay hàng bảng). TRONG Trường hợp đó, định danh tương ứng $ N sẽ là một RowType, nhưng nó phải được đặt bí danh bằng cách sử dụng lệnh bí danh được mô tả dưới đây. Chỉ có thể truy cập tỷ lệ kèo bóng đá tối nay thuộc tính của người dùng của hàng bảng trong hàng, không OID hoặc tỷ lệ kèo bóng đá tối nay thuộc tính hệ thống khác (do đó hàng có thể là Từ một chế độ xem và xem tỷ lệ kèo bóng đá tối nay hàng không có hệ thống hữu ích thuộc tính).
tỷ lệ kèo bóng đá tối nay trường của RowType kế thừa tỷ lệ kèo bóng đá tối nay bảng tỷ lệ kèo bóng đá tối nay trường hoặc Độ chính xác cho char (), v.v.
Bản ghi tương tự như RowTypes, nhưng chúng không có được xác định trước kết cấu. Chúng được sử dụng trong tỷ lệ kèo bóng đá tối nay lựa chọn và cho tỷ lệ kèo bóng đá tối nay vòng để giữ Một hàng cơ sở dữ liệu thực tế từ một hoạt động chọn. Một và The Cùng một hồ sơ có thể được sử dụng trong tỷ lệ kèo bóng đá tối nay lựa chọn khác nhau. Truy cập a bản ghi hoặc cố gắng gán giá trị cho trường bản ghi khi Không có hàng thực tế nào trong đó dẫn đến lỗi thời gian chạy.
tỷ lệ kèo bóng đá tối nay hàng mới và cũ trong trình kích hoạt được đưa ra cho thủ tục như hồ sơ. Điều này là cần thiết bởi vì trongPostgresMột và cùng một kích hoạt Quy trình có thể xử lý tỷ lệ kèo bóng đá tối nay sự kiện kích hoạt cho tỷ lệ kèo bóng đá tối nay bảng khác nhau.
Để có khả năng đọc tốt hơn của mã, có thể xác định Bí danh cho tham số vị trí thành tỷ lệ kèo bóng đá tối nay hàm.
Bí danh này được yêu cầu cho tỷ lệ kèo bóng đá tối nay loại tổng hợp được đưa ra là đối số cho một chức năng. Ký hiệu chấm $ 1.Salary như trong SQL tỷ lệ kèo bóng đá tối nay chức năng không được phép trong PL/PGSQL.
Thay đổi tên của tỷ lệ kèo bóng đá tối nay biến, bản ghi hoặc hàng. Điều này rất hữu ích Nếu mới hoặc cũ nên được tham chiếu bởi tỷ lệ kèo bóng đá tối nay tên khác bên trong tỷ lệ kèo bóng đá tối nay Quy trình kích hoạt.
Loại khác nhau có thể là bất kỳ cơ sở nào hiện có của cơ sở dữ liệu.loạiTrong Phần khai báo ở trên được định nghĩa là:
Postgres-Basetype
biến%loại
class.field%loại
biếnlà tên của tỷ lệ kèo bóng đá tối nay biến, được khai báo trước đây trong cùng tỷ lệ kèo bóng đá tối nay hàm, có thể nhìn thấy Tại thời điểm này.
classlà tên của tỷ lệ kèo bóng đá tối nay bảng hoặc xem ở đâutrườnglà Tên của tỷ lệ kèo bóng đá tối nay thuộc tính.
Sử dụngclass.field%loại khiến PL/PGSQL tra cứu tỷ lệ kèo bóng đá tối nay định nghĩa thuộc tính ở đầu tiên Gọi cho funciton trong suốt cuộc đời của một phụ trợ. Có một bàn với thuộc tính char (20) và một số chức năng PL/PGSQL giao dịch với nội dung của nó trong tỷ lệ kèo bóng đá tối nay biến cục bộ. Bây giờ ai đó quyết định rằng char (20) là không đủ, đổ bàn, thả nó, tái tạo lại ngay bây giờ với thuộc tính trong câu hỏi được định nghĩa là char (40) và khôi phục dữ liệu. Ha - Anh ấy quên mất tỷ lệ kèo bóng đá tối nay funcitons. tỷ lệ kèo bóng đá tối nay tính toán bên trong Chúng sẽ cắt giảm tỷ lệ kèo bóng đá tối nay giá trị thành 20 ký tự. Nhưng nếu họ là được xác định bằng cách sử dụngclass.field%loại khai báo, họ sẽ tự động xử lý thay đổi kích thước hoặc nếu lược đồ bảng mới xác định thuộc tính là loại văn bản.
Tất cả tỷ lệ kèo bóng đá tối nay biểu thức được sử dụng trong tỷ lệ kèo bóng đá tối nay câu lệnh PL/PGSQL được xử lý bằng cách sử dụng Người thực thi phụ trợ. Biểu thức dường như chứa Trên thực tế, tỷ lệ kèo bóng đá tối nay hằng số có thể yêu cầu đánh giá thời gian chạy (ví dụ: 'bây giờ' cho loại DateTime) vì vậy trình phân tích cú pháp PL/PGSQL không thể Xác định tỷ lệ kèo bóng đá tối nay giá trị không đổi thực khác với từ khóa null. Tất cả Biểu thức được đánh giá nội bộ bằng cách thực thi truy vấn
ChọnBiểu thứcSử dụng Trình quản lý SPI. Trong biểu hiện, sự xuất hiện của Định danh biến được thay thế bằng tỷ lệ kèo bóng đá tối nay tham số và thực tế tỷ lệ kèo bóng đá tối nay giá trị từ tỷ lệ kèo bóng đá tối nay biến được chuyển cho người thực thi trong Mảng tham số. Tất cả tỷ lệ kèo bóng đá tối nay biểu thức được sử dụng trong hàm PL/PGSQL là chỉ được chuẩn bị và lưu một lần.
Loại kiểm tra được thực hiện bởiPostgrestrình phân tích cú pháp chính có một số tác dụng phụ để Việc giải thích tỷ lệ kèo bóng đá tối nay giá trị không đổi. Chi tiết có một sự khác biệt giữa những gì hai hàm
Tạo chức năng LogFunc1 (văn bản) Trả về DateTime là ' TUYÊN BỐ Bí danh logtxt với giá $ 1; BẮT ĐẦU Chèn vào tỷ lệ kèo bóng đá tối nay giá trị logtable (logtxt, '' now ''); Trả lại '' bây giờ ''; KẾT THÚC; 'Ngôn ngữ' plpgsql ';và
Tạo hàm logfunc2 (văn bản) Trả về DateTime là ' TUYÊN BỐ Bí danh logtxt với giá $ 1; DateTime Curtime; BẮT ĐẦU Curtime: = '' Bây giờ ''; Chèn vào tỷ lệ kèo bóng đá tối nay giá trị logtable (logtxt, curtime); Trả lại thời gian; KẾT THÚC; 'Ngôn ngữ' plpgsql ';làm. Trong trường hợp của logfunc1 (),Postgrestrình phân tích cú pháp chính biết khi chuẩn bị Lập kế hoạch cho phần chèn, rằng chuỗi 'bây giờ' nên được hiểu là DateTime vì trường đích của logtable thuộc loại đó. Do đó, nó sẽ tạo ra một hằng số từ nó vào thời điểm này và điều này Giá trị không đổi sau đó được sử dụng trong tất cả tỷ lệ kèo bóng đá tối nay yêu cầu của logfunc1 () trong khi Cuộc đời của phụ trợ. Không cần phải nói rằng đây không phải là những gì lập trình viên muốn.
Trong trường hợp logfunc2 (),PostgresTrình phân tích cú pháp chính không biết loại nào 'Bây giờ' sẽ trở thành và do đó nó trả về một kiểu dữ liệu của văn bản chứa chuỗi 'bây giờ'. Trong quá trình chuyển nhượng cho địa phương Biến Curtime, trình thông dịch PL/PGSQL đã chuyển chuỗi này vào Loại DateTime bằng cách gọi tỷ lệ kèo bóng đá tối nay hàm text_out () và datetime_in () cho chuyển đổi.
Loại kiểm tra này được thực hiện bởiPostgresTrình phân tích cú pháp chính đã được triển khai sau khi PL/PGSQL gần như đã hoàn thành. Đó là một sự khác biệt giữa 6,3 và 6,4 và ảnh hưởng đến tất cả tỷ lệ kèo bóng đá tối nay chức năng bằng cách sử dụng tính năng kế hoạch đã chuẩn bị của Người quản lý SPI. Sử dụng một biến cục bộ theo cách trên là Hiện tại là cách duy nhất trong PL/PGSQL để có được những giá trị đó được giải thích chính xác.
Nếu tỷ lệ kèo bóng đá tối nay trường bản ghi được sử dụng trong tỷ lệ kèo bóng đá tối nay biểu thức hoặc câu lệnh, dữ liệu tỷ lệ kèo bóng đá tối nay loại trường không nên thay đổi giữa tỷ lệ kèo bóng đá tối nay cuộc gọi của một và giống nhau sự biểu lộ. Hãy ghi nhớ điều này khi viết tỷ lệ kèo bóng đá tối nay thủ tục kích hoạt xử lý tỷ lệ kèo bóng đá tối nay sự kiện cho nhiều bảng.
Bất cứ điều gì không được trình phân tích cú pháp tỷ lệ kèo bóng đá tối nay hiểu Dưới đây sẽ được đưa vào truy vấn và gửi xuống công cụ cơ sở dữ liệu để thực hiện. Truy vấn kết quả không được trả về bất kỳ dữ liệu nào.
tỷ lệ kèo bóng đá tối nay gán giá trị cho tỷ lệ kèo bóng đá tối nay biến hoặc trường hàng/bản ghi được viết là
định danh: =Biểu thức;Nếu kiểu dữ liệu kết quả biểu thức không khớp với Kiểu dữ liệu biến hoặc biến có kích thước/độ chính xác được biết (như đối với char (20)), giá trị kết quả sẽ được sử dụng ngầm bởi trình thông dịch mã byte pl/pgsql bằng cách sử dụng tỷ lệ kèo bóng đá tối nay loại kết quả đầu ra- và tỷ lệ kèo bóng đá tối nay biến số biến đầu vào. Lưu ý rằng điều này có thể có khả năng dẫn đến lỗi thời gian chạy được tạo bởi tỷ lệ kèo bóng đá tối nay loại đầu vào chức năng.
Bài tập của tỷ lệ kèo bóng đá tối nay lựa chọn hoàn chỉnh vào tỷ lệ kèo bóng đá tối nay bản ghi hoặc hàng có thể được thực hiện bởi
ChọnBiểu thứcthànhTargettừ ...;Targetcó thể là một bản ghi, một hàng Biến hoặc danh sách tỷ lệ kèo bóng đá tối nay biến được phân tách bằng dấu phẩy và bản ghi-/trường hàng.
Nếu một hàng hoặc danh sách biến được sử dụng làm mục tiêu, được chọn tỷ lệ kèo bóng đá tối nay giá trị phải khớp chính xác với cấu trúc của (tỷ lệ kèo bóng đá tối nay) mục tiêu hoặc Lỗi thời gian chạy xảy ra. Từ khóa có thể được theo sau bởi bất kỳ Trình độ chuyên môn, nhóm, sắp xếp hợp lệ, v.v. có thể được đưa ra cho một câu lệnh chọn.
Có tỷ lệ kèo bóng đá tối nay biến đặc biệt có tên là tìm thấy loại bool mà có thể được sử dụng ngay sau khi chọn vào để kiểm tra xem có Nhiệm vụ đã thành công.
Chọn * vào MyRec từ empname = myname; Nếu không tìm thấy thì Tăng ngoại lệ '' Nhân viên % không tìm thấy '', myname; Kết thúc nếu;Nếu lựa chọn trả về nhiều hàng, chỉ đầu tiên là di chuyển vào tỷ lệ kèo bóng đá tối nay trường mục tiêu. Tất cả những người khác bị loại bỏ âm thầm.
Tất cả tỷ lệ kèo bóng đá tối nay chức năng được xác định trong AProstgresCơ sở dữ liệu trả về tỷ lệ kèo bóng đá tối nay giá trị. Như vậy, Cách bình thường để gọi hàm là thực hiện truy vấn chọn hoặc thực hiện tỷ lệ kèo bóng đá tối nay bài tập (dẫn đến nội bộ PL/PGSQL LỰA CHỌN). Nhưng có những trường hợp ai đó không quan tâm đến int kết quả chức năng.
biểu diễnTruy vấnthực hiện tỷ lệ kèo bóng đá tối nay 'ChọnTruy vấn' qua người quản lý SPI và loại bỏ kết quả. Số nhận dạng như tỷ lệ kèo bóng đá tối nay biến cục bộ vẫn được thay thế thành tham số.
returnexpressionHàm chấm dứt và giá trị củaBiểu thứcsẽ được đưa trở lại phần trên người thực thi. Giá trị trả về của tỷ lệ kèo bóng đá tối nay hàm không thể được xác định. Nếu như Kiểm soát đạt đến phần cuối của khối Toplevel của chức năng Không cần nhấn câu lệnh trả về, lỗi thời gian chạy sẽ xảy ra.
Kết quả biểu thức sẽ tự động được đưa vào tỷ lệ kèo bóng đá tối nay chức năng Loại trả về như được mô tả cho tỷ lệ kèo bóng đá tối nay bài tập.
Như được chỉ ra trong tỷ lệ kèo bóng đá tối nay ví dụ trên có mức tăng câu lệnh có thể ném tin nhắn vàoPostgresCơ chế ELOG.
NângCấp''Định dạng'' [,định danh[...]];Bên trong định dạng, thì%%được sử dụng làm trình giữ chỗ cho định danh phân tách dấu phẩy sau đó. tỷ lệ kèo bóng đá tối nay cấp độ có thể được gỡ lỗi (âm thầm bị đàn áp trong cơ sở dữ liệu chạy sản xuất), thông báo (Viết vào nhật ký cơ sở dữ liệu và được chuyển tiếp đến máy khách ứng dụng) và ngoại lệ (được ghi vào nhật ký cơ sở dữ liệu và hủy bỏ giao dịch).
nếuBiểu thứcsau đócâu[kháccâu] Kết thúc nếu;TheBiểu thứcPhải trả lại a giá trị mà ít nhất có thể được đúc thành tỷ lệ kèo bóng đá tối nay loại boolean.
Có nhiều loại vòng.
[<< Nhãn ] Vòng lặpcâu lệnhvòng lặp kết thúc;Một vòng lặp vô điều kiện phải được chấm dứt rõ ràng bởi Một tuyên bố thoát. Nhãn tùy chọn có thể được sử dụng bằng cách thoát Báo cáo của tỷ lệ kèo bóng đá tối nay vòng lặp lồng nhau để xác định mức độ làm tổ nên bị chấm dứt.
[<< Nhãn ] TRONG KHIBiểu thứcVòng lặpCâuvòng lặp cuối;tỷ lệ kèo bóng đá tối nay vòng lặp có điều kiện được thực hiện miễn là đánh giá củaBiểu thứclà đúng.
[<< Nhãn ] VÌtêntrong [đảo ngược]Biểu thức..Biểu thứcvòng lặpCâuvòng lặp kết thúc;Một vòng lặp lặp lại trong một loạt tỷ lệ kèo bóng đá tối nay giá trị số nguyên. tỷ lệ kèo bóng đá tối nay biếntênđược tự động Được tạo dưới dạng số nguyên loại và chỉ tồn tại bên trong vòng lặp. Hai Biểu thức cho giới hạn dưới và trên của phạm vi là chỉ được đánh giá khi vào vòng lặp. Bước lặp luôn luôn là 1.
[<< Nhãn ] VÌGhi lại | hàng nganginselect_clausevòng lặpcâuvòng lặp kết thúc;Bản ghi hoặc hàng được gán tất cả tỷ lệ kèo bóng đá tối nay hàng do Chọn mệnh đề và tỷ lệ kèo bóng đá tối nay câu lệnh được thực thi cho mỗi. Nếu vòng lặp là kết thúc bằng một câu lệnh thoát, hàng được chỉ định cuối cùng vẫn còn có thể truy cập sau vòng lặp.
Thoát [nhãn] [KhiBiểu thức];nếu khôngnhãnCho, The Vòng lặp trong cùng được chấm dứt và tuyên bố sau vòng lặp cuối được thực hiện tiếp theo. Nếu nhưnhãnIS đưa ra, nó phải là nhãn của hiện tại hoặc cấp trên của Khối vòng lặp lồng nhau. Sau đó, vòng lặp hoặc khối được đặt tên bị chấm dứt và Kiểm soát tiếp tục với câu lệnh sau tỷ lệ kèo bóng đá tối nay vòng/khối Kết thúc tương ứng.
PL/PGSQL có thể được sử dụng để xác định tỷ lệ kèo bóng đá tối nay quy trình kích hoạt. Họ là được tạo bằng lệnh tạo chức năng thông thường như là một hàm với không có đối số và loại trả về mờ đục.
Có tỷ lệ kèo bóng đá tối nay sốPostgresChi tiết cụ thể trong tỷ lệ kèo bóng đá tối nay chức năng được sử dụng làm quy trình kích hoạt.
Đầu tiên họ có tỷ lệ kèo bóng đá tối nay số biến đặc biệt được tạo tự động trong Phần Tuyên bố khối Toplevel. Họ là
Bản ghi dữ liệu; Biến giữ hàng cơ sở dữ liệu mới trên Chèn/cập nhật tỷ lệ kèo bóng đá tối nay hoạt động trên tỷ lệ kèo bóng đá tối nay kích hoạt cấp độ hàng.
Bản ghi dữ liệu; Biến giữ hàng cơ sở dữ liệu cũ trên Cập nhật/xóa tỷ lệ kèo bóng đá tối nay hoạt động trên tỷ lệ kèo bóng đá tối nay kích hoạt cấp độ hàng.
Tên kiểu dữ liệu; biến chứa tên của Trigger thực sự bị bắn.
Văn bản DataType; tỷ lệ kèo bóng đá tối nay chuỗi của 'trước' hoặc 'sau' Tùy thuộc vào định nghĩa kích hoạt.
Văn bản dữ liệu; tỷ lệ kèo bóng đá tối nay chuỗi của 'hàng' hoặc 'câu lệnh' Tùy thuộc vào định nghĩa kích hoạt.
Văn bản dữ liệu; tỷ lệ kèo bóng đá tối nay chuỗi 'chèn', 'cập nhật' hoặc 'xóa' Nói cho hoạt động nào kích hoạt thực sự được bắn.
kiểu dữ liệu oid; ID đối tượng của bảng gây ra Lệnh kích hoạt.
Tên kiểu dữ liệu; tên của bảng gây ra kích hoạt cầu khẩn.
Số nguyên dữ liệu; số lượng đối số được đưa ra cho Quy trình kích hoạt trong câu lệnh creating Trình kích hoạt.
Mảng văn bản dữ liệu; tỷ lệ kèo bóng đá tối nay đối số từ tạo ra Tuyên bố kích hoạt. Chỉ số được tính từ 0 và có thể được đưa ra là một biểu thức. Chỉ số không hợp lệ (<0 hoặc = TG_NARGS) dẫn đến giá trị null.
Thứ hai họ phải trả về null hoặc bản ghi/hàng chứa Chính xác cấu trúc của bảng mà kích hoạt đã được bắn cho. tỷ lệ kèo bóng đá tối nay kích hoạt bị bắn sau khi có thể luôn trả lại giá trị null không có tác dụng. Trình kích hoạt bị bắn trước khi tín hiệu Trình quản lý kích hoạt bỏ qua Hoạt động cho hàng thực tế này khi trả lại null. Nếu không thì, bản ghi/hàng được trả về thay thế hàng được chèn/cập nhật trong hoạt động. Có thể thay thế tỷ lệ kèo bóng đá tối nay giá trị đơn trực tiếp trong MỚI và trả lại hoặc để xây dựng một bản ghi/hàng mới hoàn chỉnh để trở lại.
Postgreskhông có Mô hình xử lý ngoại lệ thông minh. Bất cứ khi nào trình phân tích cú pháp, người lập kế hoạch/trình tối ưu hóa hoặc thực thi quyết định rằng tỷ lệ kèo bóng đá tối nay tuyên bố không thể được xử lý lâu hơn, toàn bộ giao dịch bị hủy bỏ và Hệ thống nhảy trở lại vào chính để lấy truy vấn tiếp theo từ Ứng dụng máy khách.
Có thể nối vào cơ chế lỗi để nhận thấy rằng Điều này xảy ra. Nhưng hiện tại không thể nói những gì thực sự gây ra sự hủy bỏ (lỗi chuyển đổi đầu vào/đầu ra, điểm nổi Lỗi, lỗi phân tích cú pháp). Và có thể là phụ trợ cơ sở dữ liệu ở trạng thái không nhất quán vào thời điểm này, vì vậy sẽ trở lại phía trên Người thực thi hoặc ban hành nhiều lệnh có thể làm hỏng toàn bộ cơ sở dữ liệu. Và ngay cả khi, tại thời điểm này thông tin, rằng giao dịch là bị hủy bỏ, đã được gửi đến ứng dụng khách hàng, vì vậy việc tiếp tục Hoạt động không có ý nghĩa.
Do đó, điều duy nhất PL/PGSQL hiện đang làm khi nó gặp Việc hủy bỏ trong khi thực hiện tỷ lệ kèo bóng đá tối nay chức năng hoặc quy trình kích hoạt là Viết tỷ lệ kèo bóng đá tối nay số tin nhắn nhật ký mức độ gỡ lỗi bổ sung cho biết trong đó chức năng và ở đâu (số dòng và loại câu lệnh) đã xảy ra.
Đây chỉ là một vài chức năng để chứng minh mức độ dễ dàng của PL/PGSQL tỷ lệ kèo bóng đá tối nay chức năng có thể được viết. Đối với tỷ lệ kèo bóng đá tối nay ví dụ phức tạp hơn, lập trình viên có thể xem xét thử nghiệm hồi quy cho PL/pGSQL.
Một chi tiết đau đớn về tỷ lệ kèo bóng đá tối nay chức năng viết trong PL/PGSQL là Xử lý tỷ lệ kèo bóng đá tối nay trích dẫn đơn. Văn bản nguồn chức năng trên Tạo Chức năng phải là một chuỗi theo nghĩa đen. Trích dẫn duy nhất bên trong nghĩa đen Chuỗi phải được nhân đôi hoặc được trích dẫn với một dấu gạch chéo ngược. Chúng tôi là Vẫn đang tìm kiếm một sự thay thế thanh lịch. Trong khi đó, nhân đôi tỷ lệ kèo bóng đá tối nay Qoutes duy nhất như trong tỷ lệ kèo bóng đá tối nay ví dụ dưới đây nên được sử dụng. Bất kì Giải pháp cho điều này trong tỷ lệ kèo bóng đá tối nay phiên bản tương lai củaPostgressẽ tương thích hướng lên.
Hai hàm PL/PGSQL sau đây giống hệt với chúng tỷ lệ kèo bóng đá tối nay đối tác từ Thảo luận về chức năng ngôn ngữ C.
Tạo hàm add_one (int4) trả về int4 là ' BẮT ĐẦU Trả lại $ 1 + 1; KẾT THÚC; 'Ngôn ngữ' plpgsql ';
Tạo chức năng Concat_Text (văn bản, văn bản) Trả về văn bản là ' BẮT ĐẦU Trả lại $ 1 || $ 2; KẾT THÚC; 'Ngôn ngữ' plpgsql ';
tỷ lệ kèo bóng đá tối nay lần nữa nó là PL/PGSQL tương đương với ví dụ từ c chức năng.
Tạo chức năng C_OverPaid (EMP, INT4) Trả về Bool là ' TUYÊN BỐ Bí danh Emprec với giá $ 1; Bí danh Sallim với giá 2 đô la; BẮT ĐẦU Nếu emprec.salary isnull thì Trả về '' f ''; Kết thúc nếu; Trả lại emprec.salary sallim; KẾT THÚC; 'Ngôn ngữ' plpgsql ';
Trình kích hoạt này đảm bảo rằng, bất cứ khi nào tỷ lệ kèo bóng đá tối nay hàng được chèn hoặc cập nhật Trong bảng, tên người dùng và thời gian hiện tại được đóng dấu vào hàng ngang. Và nó đảm bảo rằng tỷ lệ kèo bóng đá tối nay tên nhân viên được đưa ra và Mức lương là tỷ lệ kèo bóng đá tối nay giá trị dương.
Tạo bảng EMP ( văn bản empname, Mức lương Int4, Last_date DateTime, tên cuối cùng_user); Tạo chức năng emp_stamp () trả về mờ đục khi BẮT ĐẦU - Kiểm tra xem empname và tiền lương được đưa ra Nếu new.empname thì không Tăng ngoại lệ '' Empname không thể là giá trị null ''; Kết thúc nếu; Nếu mới.Salary isnull thì Tăng ngoại lệ ''% không thể có mức lương null '', new.empname; Kết thúc nếu; - Ai làm việc cho chúng tôi khi cô ấy phải trả tiền? Nếu mới.Salary <0 thì Tăng ngoại lệ ''% không thể có mức lương âm '', new.empname; Kết thúc nếu; - Hãy nhớ ai đã thay đổi bảng lương khi New.last_date: = '' ngay bây giờ ''; New.last_user: = getpgusername (); Trả lại mới; KẾT THÚC; 'Ngôn ngữ' plpgsql '; Tạo Trigger EMP_Stamp trước khi chèn hoặc cập nhật trên EMP Đối với mỗi hàng thực thi quy trình emp_stamp ();