मैं एक अजगर स्क्रिप्ट को PostgreSql में संग्रहीत कार्यविधि के रूप में निष्पादित करना चाहता हूं
मुझे ऐसा कुछ चाहिए:
CREATE TRIGGER executePython
AFTER INSERT ON mytable
FOR EACH ROW
BEGIN
SYSTEM("python MyApp");
END;
कोई भी मेरी मदद कर सकता है, कृपया?
उत्तर:
उत्तर № 1 के लिए 1क्या आप एक्सटेंशन इंस्टॉल करने में सक्षम हैं? यदि हां, तो आप इसका उपयोग कर सकते हैं the PL/Python
विस्तार
CREATE FUNCTION callMyApp()
RETURNS VOID
AS $$
import subprocess
subprocess.call(["/usr/bin/python", "/path/to/MyApp"])
$$ LANGUAGE plpythonu;
CREATE TRIGGER executePython
AFTER INSERT ON messages
FOR EACH ROW EXECUTE PROCEDURE callMyApp();
ध्यान दें कि यह postgres उपयोगकर्ता के रूप में चलेगा, इसलिए अनुमति समस्याएं हो सकती है ।
वहां ' s भी एक एक्सटेंशन बुलाया PL/SH
, जो उपयोग की हो सकती है, लेकिन doesn "टी के लिए एक सरकारी पैकेज दिखाई देते हैं ।
CREATE FUNCTION executePython()
RETURNS VOID
AS $$
#!/bin/sh
python /path/to/MyApp
$$
LANGUAGE plsh;
यह ब्लॉग पोस्ट ब्याज की आप के लिए हो सकता है, के रूप में अच्छी तरह से ।
इसके अलावा, इस हकदार इस धागे की लगभग एक डुप्लिकेट है postgres करने के लिए कोई डेटाबेस रिकॉर्ड लिखा है, जब कोई शेल स्क्रिप्ट चलाएं.
(ध्यान दें: मैं हेवन "टी इस कोड के किसी भी परीक्षण किया.)