सबसे पहले, मैं फ्रैंक के साथ और अधिक सहमत नहीं हो सका। 9.1 और एक टेबल ट्रिगर का प्रयोग करें। हालांकि, यह संभव है कि न तो वह और न ही कोई दृश्य आपकी समस्या का समाधान करेगा।
मैन्युअल UPDATE
करने का प्रयास करें psql से आपके विचार पर। यदि यह काम करता है, और यदि आप एक ही उपयोगकर्ता आईडी का उपयोग opengeospatial के साथ करते हैं, तो मैं कहूंगा कि यह समस्या opengeospatial हो सकती है जो अपने स्वयं के अच्छे के लिए बहुत चालाक है और "जानना" है कि विचारों को अद्यतन नहीं किया जा सकता है। या तो वह, या यह INSERT
का प्रयास कर रहा है और आपने कोई मेल खाने वाला INSERT
नहीं जोड़ा है अपने विचार पर शासन करें।
संदेश "filedata_view केवल-पढ़ने के लिए है" एक संदेश नहीं है जो PostgreSQL उत्पन्न कर सकता है। मैं सोच रहा हूँ कि क्या opengeospatial JDBC मेटाडेटा का उपयोग कर रहा है (यह जावा है) या INFORMATION_SCHEMA या स्कीमा को क्वेरी करने के समान, यह निर्धारित कर रहा है कि filedata_view
एक दृश्य है, और यह निष्कर्ष निकाल रहा है कि इसलिए यह इसे अद्यतन नहीं कर सकता।
यदि यह PostgreSQL का एक संदेश होता तो इसके बजाय यह कहता:
# UPDATE customer_v SET customer_number = 1234;
ERROR: cannot update view "the_view"
HINT: You need an unconditional ON UPDATE DO INSTEAD rule or an INSTEAD OF UPDATE trigger.
log_statement = 'all'
. को सक्षम करना जानकारीपूर्ण हो सकता है में postgresql.conf
और postgresql पुनः लोड करें। पुन:परीक्षण करें, फिर लॉग में देखें कि वास्तव में opengeospatial क्या कर रहा है।
यदि यह पता चलता है कि यह एक दृश्य का पता लगा रहा है, तो आप ON SELECT
के साथ समस्या को हल करने में सक्षम हो सकते हैं नियम एक खाली तालिका में जोड़ा गया। तालिका एक दृश्य की तरह काम करेगी, लेकिन जियोसर्वर यह नहीं बता पाएगा कि यह एक दृश्य है और इसे लिखने के लिए सहमत हो सकता है।