Postgresql 8.4.22 Tài liệu | ||||
---|---|---|---|---|
prev | Backward nhanh | Chương 38.PL/PGSQL - SQL10517_10539 | Chuyển tiếp nhanh | NEXT |
PL/PGSQLcó thể được sử dụng để Xác định quy trình kích tỷ lệ kèo bóng đá trực tuyến hôm nay. Một quy trình kích tỷ lệ kèo bóng đá trực tuyến hôm nay được tạo bằng TheTạo chức năng11168_11250Trigger. Lưu ý rằng chức năng phải tuyên bố không có tranh luận ngay cả khi nó dự kiến sẽ nhận được Đối số được chỉ định trongTạo Trigger11433_11473TG_ARGV, như được mô tả bên dưới.
Khi APL/PGSQLHàm là được gọi là một trình kích tỷ lệ kèo bóng đá trực tuyến hôm nay, một số biến đặc biệt được tạo tự động trong khối cấp cao nhất. Họ là:
Kiểu dữ liệuRecord; giữ biến Hàng cơ sở dữ liệu mới choChèn/Cập nhậttỷ lệ kèo bóng đá trực tuyến hôm nay động trong các kích tỷ lệ kèo bóng đá trực tuyến hôm nay cấp độ hàng. Biến này lànullTrong các kích tỷ lệ kèo bóng đá trực tuyến hôm nay cấp độ tuyên bố và choXóatỷ lệ kèo bóng đá trực tuyến hôm nay động.
Kiểu dữ liệuRecord; giữ biến Hàng cơ sở dữ liệu cũ choCập nhật/Xóatỷ lệ kèo bóng đá trực tuyến hôm nay động trong các kích tỷ lệ kèo bóng đá trực tuyến hôm nay cấp độ hàng. Biến này lànullTrong các kích tỷ lệ kèo bóng đá trực tuyến hôm nay cấp độ tuyên bố và choChèntỷ lệ kèo bóng đá trực tuyến hôm nay động.
Kiểu dữ liệutên; biến mà chứa tên của bộ kích tỷ lệ kèo bóng đá trực tuyến hôm nay thực sự bị bắn.
Kiểu dữ liệuText; một chuỗi củatrướchoặcsauTùy thuộc vào bộ kích tỷ lệ kèo bóng đá trực tuyến hôm nay sự định nghĩa.
Kiểu dữ liệuText; một chuỗi củahànghoặccâu lệnhTùy thuộc vào bộ kích tỷ lệ kèo bóng đá trực tuyến hôm nay sự định nghĩa.
Kiểu dữ liệuText; một chuỗiChèn, Cập nhật, Xóahoặccắt ngắn13643_13704
Kiểu dữ liệuOID; ID đối tượng của bảng gây ra lời mời kích tỷ lệ kèo bóng đá trực tuyến hôm nay.
Kiểu dữ liệutên; tên của Bảng gây ra lời cầu xin kích tỷ lệ kèo bóng đá trực tuyến hôm nay. Đây là bây giờ Khấu hao, và có thể biến mất trong một bản phát hành trong tương lai. Sử dụngTG_TABLE_NAMEthay vào đó.
Kiểu dữ liệutên; tên của bảng gây ra lời mời kích tỷ lệ kèo bóng đá trực tuyến hôm nay.
Kiểu dữ liệutên14558_14641
Kiểu dữ liệuSố nguyên; số lượng của Các đối số được đưa ra cho quy trình kích tỷ lệ kèo bóng đá trực tuyến hôm nay trongTạo Triggercâu lệnh.
Mảng kiểu dữ liệu củaText; các Đối số từTạo TriggerTuyên bố. Chỉ số được tính từ 0. Chỉ số không hợp lệ (ít hơn hơn 0 hoặc lớn hơn hoặc bằngTG_NARGS) dẫn đến giá trị null.
Một chức năng kích tỷ lệ kèo bóng đá trực tuyến hôm nay phải trả vềnullhoặc giá trị bản ghi/hàng có chính xác Cấu trúc của bảng Trình kích tỷ lệ kèo bóng đá trực tuyến hôm nay đã được bắn cho.
Trình kích tỷ lệ kèo bóng đá trực tuyến hôm nay cấp hàng đã bắntrướcCó thể trả về null để báo hiệu Trình quản lý kích tỷ lệ kèo bóng đá trực tuyến hôm nay để bỏ qua phần còn lại của tỷ lệ kèo bóng đá trực tuyến hôm nay động cho hàng này (tức là, các kích tỷ lệ kèo bóng đá trực tuyến hôm nay tiếp theo không được bắn, vàChèn/Cập nhật/XóaKhông xảy ra cho hàng này). Nếu một giá trị nonnull được trả về thì tỷ lệ kèo bóng đá trực tuyến hôm nay động tiến hành với giá trị hàng đó. Trả lại giá trị hàng khác với giá trị ban đầu củamớiThay đổi hàng sẽ được chèn hoặc cập nhật (nhưng không có Hiệu ứng trực tiếp trongXóatrường hợp). ĐẾN thay đổi hàng cần lưu trữ, có thể thay thế một Giá trị trực tiếp trongnewvà trả về Đã sửa đổimớihoặc để xây dựng một cái mới hoàn chỉnh Ghi lại/ROW để trả về.
Giá trị trả về của AtrướchoặcsauTrình kích tỷ lệ kèo bóng đá trực tuyến hôm nay cấp độ tuyên bố hoặcsauTrigger cấp độ hàng luôn bỏ qua; Nó cũng có thể là NULL. Tuy nhiên, bất kỳ loại nào trong số này của Trình kích tỷ lệ kèo bóng đá trực tuyến hôm nay vẫn có thể hủy bỏ toàn bộ tỷ lệ kèo bóng đá trực tuyến hôm nay động bằng cách nâng cao lỗi.
Ví dụ 38-3Hiển thị một ví dụ về quy trình kích tỷ lệ kèo bóng đá trực tuyến hôm nay trongPL/PGSQL.
Ví dụ 38-3. MỘTPL/PGSQLQuy trình kích tỷ lệ kèo bóng đá trực tuyến hôm nay
Ví dụ này kích tỷ lệ kèo bóng đá trực tuyến hôm nay đảm bảo rằng bất cứ khi nào một hàng được chèn hoặc được cập nhật trong bảng, tên người dùng và thời gian hiện tại là đóng dấu vào hàng. Và nó kiểm tra xem tên của một nhân viên là đã cho và mức lương là một giá trị dương.
Tạo bảng EMP ( văn bản empname, Số nguyên tiền lương, Last_date Dấu thời gian, Last_user văn bản ); Tạo chức năng Emp_Stamp () trả về Trigger như $ EMP_STAMP $ BẮT ĐẦU - Kiểm tra xem empname và tiền lương được đưa ra Nếu new.empname là null thì Nâng cao ngoại lệ 'Empname không thể là NULL'; Kết thúc nếu; Nếu new.salary là null thì Tăng ngoại lệ '% không thể có tiền 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 cho 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: = current_timestamp; New.last_user: = current_user; Trả lại mới; KẾT THÚC; $ emp_stamp $ 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 tỷ lệ kèo bóng đá trực tuyến hôm nay emp_stamp ();
Một cách khác để nhật ký thay đổi vào bảng liên quan đến việc tạo ra một bản mới bảng giữ một hàng cho mỗi lần chèn, cập nhật hoặc xóa nó xảy ra. Cách tiếp cận này có thể được coi là kiểm toán thay đổi bàn.Ví dụ 38-4Hiển thị một ví dụ về quy trình kích tỷ lệ kèo bóng đá trực tuyến hôm nay kiểm toán trongPL/PGSQL.
Ví dụ 38-4. MỘTPL/PGSQLQuy trình kích tỷ lệ kèo bóng đá trực tuyến hôm nay cho Kiểm toán
Ví dụ này kích tỷ lệ kèo bóng đá trực tuyến hôm nay đảm bảo rằng mọi chèn, cập nhật hoặc Xóa một hàng trongEMPBảng là đã ghi (tức là, đã được kiểm toán) trongEMP_AUDITBảng. Thời gian hiện tại và tên người dùng được đóng dấu vào hàng, cùng với loại tỷ lệ kèo bóng đá trực tuyến hôm nay động đã thực hiện trên nó.
Tạo bảng EMP ( Empname văn bản không phải null, Số nguyên lương ); Tạo bảng emp_audit ( tỷ lệ kèo bóng đá trực tuyến hôm nay động Char (1) không phải NULL, dấu thời gian tem không phải null, văn bản userid không null, Empname văn bản không phải null, Số nguyên lương ); Tạo hoặc thay thế chức năng process_emp_audit () trả về Trigger như $ emp_audit $ BẮT ĐẦU - - Tạo một hàng trong EMP_Audit để phản ánh tỷ lệ kèo bóng đá trực tuyến hôm nay động được thực hiện trên EMP, - Sử dụng biến đặc biệt TG_OP để thực hiện thao tác. - If (tg_op = 'xóa') thì Chèn vào emp_audit Chọn 'd', bây giờ (), người dùng, cũ.*; Trả lại cũ; Elsif (tg_op = 'cập nhật') sau đó Chèn vào emp_audit Chọn 'u', bây giờ (), người dùng, mới.*; Trả lại mới; Elsif (tg_op = 'chèn') sau đó Chèn vào emp_audit Chọn 'i', bây giờ (), người dùng, mới.*; Trả lại mới; Kết thúc nếu; Trả lại null; - Kết quả bị bỏ qua vì đây là một kích tỷ lệ kèo bóng đá trực tuyến hôm nay sau KẾT THÚC; $ emp_audit $ ngôn ngữ plpgsql; Tạo Trigger EMP_AUDIT Sau khi chèn hoặc cập nhật hoặc xóa trên EMP Đối với mỗi hàng thực thi quy trình quy trình_emp_audit ();
20522_20873Ví dụ 38-5Hiển thị ví dụ về quy trình kích tỷ lệ kèo bóng đá trực tuyến hôm nay trongPL/PGSQLduy trì bảng tóm tắt cho một bảng thực tế trong kho dữ liệu.