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
9673_9744
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ế.

43.10. Chức năng kích tỷ lệ kèo bóng đá 88

PL/PGSQLcó thể được sử dụng để xác định các chức năng kích tỷ lệ kèo bóng đá 88 trên các thay đổi dữ liệu hoặc các sự kiện cơ sở dữ liệu. Chức năng kích tỷ lệ kèo bóng đá 88 được tạo bằngtạo chức tỷ lệ kèo bóng đá 8811905_11983Trigger(đối với kích tỷ lệ kèo bóng đá 88 thay đổi dữ liệu) hoặcevent_trigger(đối với các kích tỷ lệ kèo bóng đá 88 sự kiện cơ sở dữ liệu). Các biến cục bộ đặc biệt có tênTG_cái gì đóđược tự động xác định để mô tả điều kiện kích tỷ lệ kèo bóng đá 88 cuộc gọi.

43.10.1. Kích tỷ lệ kèo bóng đá 88 thay đổi dữ liệu

Akèo bóng đá pháp: Tài liệu: 11: Chương 39. Trìnhđược khai báo là một hàm không có đối số và loại trả về củaTrigger. Lưu ý rằng hàm phải được khai báo mà không có đối số ngay cả khi nó dự kiến ​​sẽ nhận được một số đối số được chỉ định trongTạo Trigger- Các đối số như vậy được truyền quaTG_ARGV, như được mô tả bên dưới.

Khi APL/PGSQLHàm được gọi là kích tỷ lệ kèo bóng đá 88, một số biến đặc biệt được tạo tự động trong khối cấp cao nhất. Họ là:

mới

Kiểu dữ tỷ lệ kèo bóng đá 88Record; Biến giữ hàng cơ sở dữ tỷ lệ kèo bóng đá 88 mới choChèn/Cập nhậttỷ lệ kèo bóng đá 88 động trong các kích tỷ lệ kèo bóng đá 88 cấp độ hàng. Biến này là NULL trong các kích tỷ lệ kèo bóng đá 88 cấp câu lệnh và choXóatỷ lệ kèo bóng đá 88 động.

Kiểu dữ tỷ lệ kèo bóng đá 88Record; Biến giữ hàng cơ sở dữ tỷ lệ kèo bóng đá 88 cũ choCập nhật/Xóa13905_14000Chèntỷ lệ kèo bóng đá 88 động.

TG_NAME

Kiểu dữ tỷ lệ kèo bóng đá 88tên; Biến chứa tên của bộ kích tỷ lệ kèo bóng đá 88 thực sự bị bắn.

TG_WHEN

Kiểu dữ tỷ lệ kèo bóng đá 88Text; một chuỗitrước, sauhoặcthay vì, Tùy thuộc vào định nghĩa của bộ kích tỷ lệ kèo bóng đá 88.

TG_Level

Kiểu dữ tỷ lệ kèo bóng đá 88Text; một chuỗi củahànghoặccâu lệnhTùy thuộc vào định nghĩa của bộ kích tỷ lệ kèo bóng đá 88.

TG_OP

Kiểu dữ tỷ lệ kèo bóng đá 88Text; một chuỗiChèn, Cập nhật, Xóahoặccắt ngắnKể cho tỷ lệ kèo bóng đá 88 động nào đã kích tỷ lệ kèo bóng đá 88.

TG_RELID

Kiểu dữ tỷ lệ kèo bóng đá 88OID; ID đối tượng của bảng gây ra lệnh gọi kích tỷ lệ kèo bóng đá 88.

TG_RELNAME

Kiểu dữ tỷ lệ kèo bóng đá 88tên; Tên của bảng gây ra lời mời kích tỷ lệ kèo bóng đá 88. Điều này bây giờ không được chấp nhận, 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 đó.

TG_TABLE_NAME

Kiểu dữ tỷ lệ kèo bóng đá 88tên; Tên của bảng gây ra lời mời kích tỷ lệ kèo bóng đá 88.

tg_table_schema

Kiểu dữ tỷ lệ kèo bóng đá 88tên; Tên của lược đồ của bảng gây ra lời mời kích tỷ lệ kèo bóng đá 88.

TG_NARGS

Kiểu dữ tỷ lệ kèo bóng đá 88Số nguyên; số lượng đối số được đưa ra cho hàm kích tỷ lệ kèo bóng đá 88 trongTạo Triggercâu lệnh.

TG_ARGV []

mảng kiểu dữ tỷ lệ kèo bóng đá 88 củaText16802_16829Tạo TriggerTuyên bố. Chỉ số được tính từ 0. Các chỉ mục không hợp lệ (nhỏ 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 đá 88 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, kích tỷ lệ kèo bóng đá 88 đã được kích tỷ lệ kèo bóng đá 88.

Trình kích tỷ lệ kèo bóng đá 88 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 đá 88 để bỏ qua phần còn lại của thao tác cho hàng này (nghĩa là, các bộ kích tỷ lệ kèo bóng đá 88 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 đá 88 động sẽ tiến hành giá trị hàng đó. Trả về 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. Do đó, nếu hàm kích tỷ lệ kèo bóng đá 88 muốn hành động kích tỷ lệ kèo bóng đá 88 thành công bình thường mà không làm thay đổi giá trị hàng,mới(hoặc một giá trị bằng nhau) phải được trả về. Để thay đổi hàng cần được lưu trữ, có thể thay thế các giá trị đơn trực tiếp trongmớivà trả về sửa đổimớihoặc để xây dựng một bản ghi/hàng mới hoàn chỉnh để trả lại. Trong trường hợp trước kích tỷ lệ kèo bóng đá 88 trênXóa, Giá trị trả về không có hiệu lực trực tiếp, nhưng nó phải không được cho phép hành động kích tỷ lệ kèo bóng đá 88 được tiến hành. Lưu ý rằngmớilà null trongXóaTriggers, vì vậy việc trả lại thường không hợp lý. Thành ngữ thông thường trongXóaTriggers sẽ trở lại.

thay vìTriggers (luôn luôn là kích tỷ lệ kèo bóng đá 88 cấp độ hàng và chỉ có thể được sử dụng trên các lượt xem) có thể trả lại NULL để báo hiệu rằng chúng không thực hiện bất kỳ bản cập nhật nào và phần còn lại của hàng cho hàng không được đưa vàoChèn/Cập nhật/Xóa19140_19257ChènCập nhậttỷ lệ kèo bóng đá 88 động, giá trị trả về phải làmới, mà hàm kích tỷ lệ kèo bóng đá 88 có thể sửa đổi để hỗ trợ​​Chèn trả lạiCập nhật trả về(Điều này cũng sẽ ảnh hưởng đến giá trị hàng được truyền cho bất kỳ bộ kích tỷ lệ kèo bóng đá 88 nào sau đó hoặc được chuyển cho một đặc biệtđược loại trừTham khảo bí danh trong mộtChènTuyên bố vớiVề xung đột do cập nhậtmệnh đề). VìXóatỷ lệ kèo bóng đá 88 động, giá trị trả về phải là.

Giá trị trả về của kích tỷ lệ kèo bóng đá 88 cấp hàng được bắnsauhoặc kích tỷ lệ kèo bóng đá 88 cấp độ tuyên bốTrướchoặcsauluôn bị bỏ qua; Nó cũng có thể là NULL. Tuy nhiên, bất kỳ loại kích tỷ lệ kèo bóng đá 88 nào vẫn có thể hủy bỏ toàn bộ tỷ lệ kèo bóng đá 88 động bằng cách gây ra lỗi.

Ví dụ 43.3Hiển thị một ví dụ về hàm kích tỷ lệ kèo bóng đá 88 trongPL/PGSQL.

Ví dụ 43.3. MỘTPL/PGSQLchức năng kích tỷ lệ kèo bóng đá 88

Kích tỷ lệ kèo bóng đá 88 ví dụ này đảm bảo rằng bất cứ khi nào một 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. Và nó kiểm tra xem tên của một nhân viên được đưa ra 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 tỷ lệ kèo bóng đá 88 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 họ 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 chức tỷ lệ kèo bóng đá 88 emp_stamp ();

Một cách khác để ghi lại các thay đổi vào bảng liên quan đến việc tạo một bảng mới giữ một hàng cho mỗi lần chèn, cập nhật hoặc xóa xảy ra. Cách tiếp cận này có thể được coi là kiểm toán thay đổi trên bảng.Ví dụ 43.4Hiển thị ví dụ về chức năng kích tỷ lệ kèo bóng đá 88 kiểm toán trongPL/PGSQL.

Ví dụ 43.4. MỘTPL/PGSQLChức năng kích tỷ lệ kèo bóng đá 88 để kiểm toán

Ví dụ này kích tỷ lệ kèo bóng đá 88 đảm bảo rằng mọi chèn, cập nhật hoặc xóa một hàng trongEMPBảng được ghi lại (tức là đã được kiểm toán) trongEMP_AUDITBảng. Tên người dùng và thời gian hiện tại được đóng dấu vào hàng, cùng với loại tỷ lệ kèo bóng đá 88 động được thực hiện trên đó.

23093_24252

Một biến thể của ví dụ trước sử dụng chế độ xem tham gia bảng chính vào bảng kiểm toán, để hiển thị khi mỗi mục được sửa đổi lần cuối. Cách tiếp cận này vẫn ghi lại sự thay đổi kiểm toán đầy đủ của bảng, nhưng cũng trình bày một cái nhìn đơn giản về dấu vết kiểm toán, chỉ hiển thị dấu thời gian được sửa đổi cuối cùng có nguồn gốc từ đường mòn kiểm toán cho mỗi mục.Ví dụ 43.5Hiển thị ví dụ về kích tỷ lệ kèo bóng đá 88 kiểm toán trên chế độ xem trongPL/PGSQL.

Ví dụ 43.5. MỘTPL/PGSQLXem chức năng kích tỷ lệ kèo bóng đá 88 để kiểm toán

25203_25368EMP_AUDITBảng. Thời gian hiện tại và tên người dùng được ghi lại, cùng với loại tỷ lệ kèo bóng đá 88 động được thực hiện và chế độ xem hiển thị thời gian sửa đổi cuối cùng của mỗi hàng.

25602_27325

Một cách sử dụng các yếu tố kích tỷ lệ kèo bóng đá 88 là duy trì bảng tóm tắt của một bảng khác. Tóm tắt kết quả có thể được sử dụng thay cho bảng gốc cho các truy vấn nhất định - thường là với thời gian chạy giảm rất nhiều. Kỹ thuật này thường được sử dụng trong kho dữ liệu, trong đó các bảng dữ liệu được đo hoặc quan sát (được gọi là bảng thực tế) có thể cực kỳ lớn.Ví dụ 43.6Hiển thị một ví dụ về hàm kích tỷ lệ kèo bóng đá 88 trongPL/PGSQLduy trì bảng tóm tắt cho bảng thực tế trong kho dữ tỷ lệ kèo bóng đá 88.

Ví dụ 43.6. MỘTPL/PGSQLChức năng kích tỷ lệ kèo bóng đá 88 để duy trì bảng tóm tắt

lược đồ chi tiết ở đây một phần dựa trênCửa hàng tạp hóaVí dụ từBộ công cụ kho dữ tỷ lệ kèo bóng đá 88bởi Ralph Kimball.

28585_33159

sauTriggers cũng có thể sử dụngBảng chuyển tiếpĐể kiểm tra toàn bộ tập hợp các hàng thay đổi bằng câu lệnh kích tỷ lệ kèo bóng đá 88. TheTạo TriggerLệnh gán tên cho một hoặc cả hai bảng chuyển tiếp, và sau đó chức tỷ lệ kèo bóng đá 88 có thể tham khảo các tên đó như thể chúng chỉ đọc các bảng tạm thời.Ví dụ 43.733773_33793

Ví dụ 43.7. Kiểm toán với bảng chuyển tiếp

Ví dụ này tạo ra kết quả giống nhưVí dụ 43.434226_34606Tham khảomệnh đề phải khác nhau cho mỗi trường hợp. Nhưng điều này không ngăn chúng tôi sử dụng một chức năng kích tỷ lệ kèo bóng đá 88 duy nhất nếu chúng tôi chọn. (Trong thực tế, tốt hơn là sử dụng ba chức năng riêng biệt và tránh các bài kiểm tra thời gian chạy trênTG_OP.)

34937_36551

43.10.2. Trình kích tỷ lệ kèo bóng đá 88 trên các sự kiện

PL/PGSQLCó thể được sử dụng để xác địnhPostgreSQL: Tài liệu: 11: Chương. POSTGRESQL37047_37186event_trigger.

Khi APL/PGSQLHàm được gọi là kích tỷ lệ kèo bóng đá 88 sự kiện, một số biến đặc biệt được tạo tự động trong khối cấp cao nhất. Họ là:

TG_EVENT

Kiểu dữ tỷ lệ kèo bóng đá 88Text; Một chuỗi đại diện cho sự kiện Trình kích tỷ lệ kèo bóng đá 88 được kích tỷ lệ kèo bóng đá 88.

TG_TAG

Kiểu dữ tỷ lệ kèo bóng đá 88Text; Biến chứa thẻ lệnh mà kích tỷ lệ kèo bóng đá 88 được kích tỷ lệ kèo bóng đá 88.

Ví dụ 43.8Hiển thị một ví dụ về chức năng kích tỷ lệ kèo bóng đá 88 sự kiện trongPL/PGSQL.

Ví dụ 43.8. MỘTPL/PGSQLChức năng kích tỷ lệ kèo bóng đá 88 sự kiện

Ví dụ này kích tỷ lệ kèo bóng đá 88 chỉ đơn giản là tăngThông báoTin nhắn mỗi khi lệnh được hỗ trợ được thực hiện.

Tạo hoặc thay thế chức năng snitch () trả về event_trigger dưới dạng $$
BẮT ĐẦU
    Nâng cao thông báo 'snitch: % %', tg_event, tg_tag;
KẾT THÚC;
$$ Ngôn ngữ plpgsql;

Tạo sự kiện kích tỷ lệ kèo bóng đá 88 snitch trên ddl_command_start thực thi chức năng snitch ();