\dft
ฉันรู้ว่าฉันสามารถแสดงรายการทริกเกอร์ที่มี แต่ฉันจะเห็นทริกเกอร์คอนกรีตหนึ่งอันได้อย่างไร ฉันต้องการทราบรายละเอียดเช่นเหตุการณ์ที่เรียกใช้งานซึ่งฟังก์ชันใดถูกดำเนินการและอื่น ๆ
\dft
ฉันรู้ว่าฉันสามารถแสดงรายการทริกเกอร์ที่มี แต่ฉันจะเห็นทริกเกอร์คอนกรีตหนึ่งอันได้อย่างไร ฉันต้องการทราบรายละเอียดเช่นเหตุการณ์ที่เรียกใช้งานซึ่งฟังก์ชันใดถูกดำเนินการและอื่น ๆ
คำตอบ:
ตกลงฉันรู้เกี่ยวกับมันด้วยตัวเอง
คำสั่ง\dft
ไม่แสดงทริกเกอร์ของตัวเอง (อย่างที่ฉันคิด) มันแสดงทริกเกอร์ฟังก์ชันทั้งหมด (ทริกเกอร์ชนิดส่งคืน)
หากต้องการดูทริกเกอร์ที่คุณสามารถทำได้\dS <tablename>
จะไม่แสดงเฉพาะคอลัมน์ของตารางนี้ แต่ยังทริกเกอร์ทั้งหมดที่กำหนดไว้ในตารางนี้
ในการแสดงแหล่งที่มาของทริกเกอร์ฟังก์ชั่น (หรือฟังก์ชั่นใด ๆ ) \df+ <functionname>
การใช้งาน
หากคุณไม่มีสิทธิ์เข้าถึงคำสั่ง psql คุณยังสามารถใช้:
select pg_get_functiondef('functionname'::regproc);
คุณสามารถลองต่อไปนี้:
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