ฉันจะแสดงเนื้อหาของทริกเกอร์ด้วย psql ได้อย่างไร


13

\dftฉันรู้ว่าฉันสามารถแสดงรายการทริกเกอร์ที่มี แต่ฉันจะเห็นทริกเกอร์คอนกรีตหนึ่งอันได้อย่างไร ฉันต้องการทราบรายละเอียดเช่นเหตุการณ์ที่เรียกใช้งานซึ่งฟังก์ชันใดถูกดำเนินการและอื่น ๆ

คำตอบ:


24

ตกลงฉันรู้เกี่ยวกับมันด้วยตัวเอง

คำสั่ง\dftไม่แสดงทริกเกอร์ของตัวเอง (อย่างที่ฉันคิด) มันแสดงทริกเกอร์ฟังก์ชันทั้งหมด (ทริกเกอร์ชนิดส่งคืน)

หากต้องการดูทริกเกอร์ที่คุณสามารถทำได้\dS <tablename>จะไม่แสดงเฉพาะคอลัมน์ของตารางนี้ แต่ยังทริกเกอร์ทั้งหมดที่กำหนดไว้ในตารางนี้

ในการแสดงแหล่งที่มาของทริกเกอร์ฟังก์ชั่น (หรือฟังก์ชั่นใด ๆ ) \df+ <functionname>การใช้งาน


1
ใช้ \ ef <function_name> เพื่อความสะดวกในการอ่าน
Brain90

7

หากคุณไม่มีสิทธิ์เข้าถึงคำสั่ง psql คุณยังสามารถใช้:

select pg_get_functiondef('functionname'::regproc);

2

คุณสามารถลองต่อไปนี้:

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

หรือคุณสามารถแสดงทริกเกอร์ของตารางชื่อ 'testtable' ดังนี้:

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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.