Mô tả chức năng
Lệnh SHOW TRIGGERS hiển thị thông tin về các trình kích hoạt (triggers) trong cơ sở dữ liệu.
Cú pháp
SHOW TRIGGERS {FROM | IN} ten_cSDL [LIKE 'mẫu' | WHERE biểu_thức]
Giải thích tham số
- ten_cSDL: Tên của cơ sở dữ liệu hoặc schema.
- WHERE biểu_thức: Biểu thức lọc để chọn các trình kích hoạt cụ thể.
- LIKE 'mẫu': Mẫu chính quy để so khớp với tên của các trình kích hoạt.
Kết quả trả về
| Tên trường | Loại | Mô tả |
|---|---|---|
| Trigger | Tên trình kích hoạt | |
| Sự kiện | Sự kiện kích hoạt (Insert, Delete, Update, Truncate) | |
| Bảng | Bảng được định nghĩa cho trình kích hoạt | |
| Lời gọi | Nội dung của trình kích hoạt | |
| Thời điểm | Thời điểm kích hoạt (Trước hoặc sau sự kiện) | |
| Được tạo | Thời gian tạo trình kích hoạt | Trường này trống |
| sql_mode | Chế độ SQL khi tạo trình kích hoạt | Trường này trống |
| Người tạo | Người tạo trình kích hoạt | |
| character_set_client | Bộ ký tự của khách hàng khi tạo | Trường này trống |
| collation_connection | Quy tắc sắp xếp của kết nối khi tạo | Trường này trống |
| Database Collation | Quy tắc sắp xếp của cơ sở dữ liệu |
Ví dụ
opengauss=# -- Tạo bảng và hàm kích hoạt
opengauss=# CREATE TABLE bang_nguon(id1 INT, id2 INT, id3 INT);
CREATE OR REPLACE FUNCTION ham_kich_hoat() RETURNS TRIGGER AS $$
DECLARE
BEGIN
INSERT INTO bang_dich VALUES(NEW.id1, NEW.id2, NEW.id3);
RETURN NEW;
END $$ LANGUAGE PLPGSQL;
-- Tạo trình kích hoạt
CREATE TRIGGER kich_hoat_truoc_chen BEFORE INSERT ON bang_nguon FOR EACH ROW EXECUTE PROCEDURE ham_kich_hoat();
-- Hiển thị thông tin
SHOW TRIGGERS;
CREATE TABLE
opengauss=# CREATE TABLE bang_dich(id1 INT, id2 INT, id3 INT);
CREATE TABLE
opengauss=# CREATE OR REPLACE FUNCTION ham_kich_hoat() RETURNS TRIGGER AS $$
DECLARE
BEGIN
INSERT INTO bang_dich VALUES(NEW.id1, NEW.id2, NEW.id3);
RETURN NEW;
END $$ LANGUAGE PLPGSQL;
CREATE FUNCTION
opengauss=# -- Tạo trình kích hoạt
opengauss=# CREATE TRIGGER kich_hoat_truoc_chen BEFORE INSERT ON bang_nguon FOR EACH ROW EXECUTE PROCEDURE ham_kich_hoat();
CREATE TRIGGER
opengauss=# -- Hiển thị thông tin
opengauss=# SHOW TRIGGERS;
Trigger | Event | Table | Statement | Timing | Created | sql_mode | Definer | character_set_client | collation_connection | Database Collation
----------------+--------+----------------------+-------------------------------------+--------+---------+----------+---------+----------------------+----------------------+--------------------
kich_hoat_truoc_chen | INSERT | bang_nguon | EXECUTE PROCEDURE ham_kich_hoat() | BEFORE | | | wyc | | | en_US.UTF-8
(1 row)