Làm thế nào tôi có thể hiển thị nội dung của một kích hoạt với psql?


11

Tôi biết tôi có thể liệt kê các kích hoạt với \dft. Nhưng làm thế nào tôi có thể thấy một kích hoạt cụ thể? Tôi muốn biết chi tiết như về sự kiện nào kích hoạt được thực thi, chức năng nào được thực thi và vân vân.

Câu trả lời:


23

OK, tôi tự tìm hiểu về nó.

Lệnh \dftkhông hiển thị chính trình kích hoạt (như tôi nghĩ), nó hiển thị tất cả các hàm kích hoạt (kích hoạt kiểu trả về).

Để xem trình kích hoạt bạn có thể thực hiện \dS <tablename>, nó không chỉ hiển thị các cột của bảng này mà còn hiển thị tất cả các kích hoạt được xác định trên bảng này.

Để hiển thị nguồn của hàm kích hoạt (hoặc bất kỳ chức năng nào) sử dụng \df+ <functionname>.


1
Sử dụng \ ef <function_name> để đọc thuận tiện hơn.
Brain90

6

Nếu bạn không có quyền truy cập vào các lệnh psql, bạn vẫn có thể sử dụng:

select pg_get_functiondef('functionname'::regproc);

1

Bạn có thể thử như sau:

SELECT event_object_table,trigger_name,event_manipulation,action_statement,action_timing FROM information_schema.triggers ORDER BY event_object_table,event_manipulation

hoặc bạn có thể hiển thị các kích hoạt của một bảng có tên 'testtable' như thế này:

SELECT event_object_table,trigger_name,event_manipulation,action_statement,action_timing FROM information_schema.triggers WHERE event_object_table='testtable' ORDER BY event_object_table,event_manipulation
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.