2
我的要求是在觸發器執行時執行系統命令,如(ls)或C程序。有什麼辦法可以創建一個觸發函數來解決這個問題。在postgresql中執行系統命令
我的要求是在觸發器執行時執行系統命令,如(ls)或C程序。有什麼辦法可以創建一個觸發函數來解決這個問題。在postgresql中執行系統命令
你可以寫觸發功能Python,Perl或Tcl,並提供了您所使用的"untrusted"的語言版本,任何這些可以被用來執行任意shell命令。該shell將在Postgres服務器進程(通常爲「postgres」)的同一用戶下運行,因此您需要相應地設置權限。
例如,在運行CREATE EXTENSION plpythonu
後,您可以使用LANGUAGE plpythonu
編寫觸發器函數,並通過調用例如, os.system()
。
與修改系統,因爲這些變化是不依賴於你的數據庫事務的任何命令採取護理(所以你需要找到自己處理併發寫入事務回滾等方式)。