有什么方法可以找到 Postgresql 資料庫的觸發器/函式/程序中存在的術語(例如列名)?
我正在調查為列分配“空”值的操作,我懷疑它與資料庫觸發器有關,但我找不到它。
uj5u.com熱心網友回復:
我假設您沒有可用的版本控制中的資料庫架構代碼。
如果是這種情況,那么最簡單的方法可能是pg_dump --schema-onlygrep 或您最喜歡的文本編輯器。這將是我的首選選項,因為無論如何您都希望看到函式體。
您始終可以查詢 sql/plpgsql/plpython 等函式的文本(它們在 中pg_proc),但這可能比僅轉儲模式更繁瑣。
最后,plpgsql-check為函式提供了一個依賴串列工具。這可以向您顯示任何特定 plpgsql 函式使用的表和其他函式。
如果您的任何函式生成動態 SQL,那么您當然不能保證能夠找到表/列的名稱。在這種情況下,您可以嘗試添加一個AFTER觸發器(稱為“zzz_something”,因此它最后運行),它可以檢查您的列是否為 NULL,如果是,則記錄current_query()和任何其他可能指向正確方向的詳細資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/326908.html
標籤:sql PostgreSQL
