PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

पोस्टग्रेज़ फ़ंक्शन में अस्थायी तालिका को नहीं पहचानता है

पोस्टग्रेज़ उस फ़ंक्शन पर कुछ सरल जाँच चलाता है जिसे आप बनाने का प्रयास कर रहे हैं, और यह पाता है (सही ढंग से) कि तालिका work_list (अभी तक) मौजूद नहीं है। मुझे दो विकल्प दिखाई देते हैं:

<हड़ताल> <एच4>1. "इसे तब तक नकली बनाएं जब तक आप इसे न बना लें" फ़ंक्शन बनाने से पहले वास्तव में (अस्थायी) तालिका बनाएं। सत्र के अंत में अस्थायी तालिका चली जाएगी, लेकिन एक बार फ़ंक्शन बन जाने के बाद, आपने इस परीक्षा को हमेशा के लिए पास कर लिया है। संघर्ष से बचने के लिए सत्र। बेहतर है, हालांकि:CREATE TEMP TABLE IF NOT EXISTS आपके फ़ंक्शन में (9.1+ पोस्ट करता है)। यदि टेबल पहले से मौजूद है तो आप उसे छोटा करना चाह सकते हैं ...

हालाँकि (नीचे टिप्पणियाँ देखें), मैनुअल को उद्धृत करते हुए

बोल्ड जोर मेरा।

<एच4>2. इसके बजाय PL/pgSQL का उपयोग करें

plpgsql में चेक कम विस्तृत हैं। यदि Postgres अभी भी शिकायत करता है (जो इस मामले में नहीं है), तो आप एसक्यूएल को EXECUTE के साथ गतिशील रूप से निष्पादित करें

इसके अलावा:कई मामलों में, कोने के चारों ओर अस्थायी तालिका के बिना एक अधिक प्रदर्शनकारी समाधान होता है ...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पैरामीटरयुक्त क्वेरी:जांचें कि फ़ील्ड चयन कथन में मानों की सरणी में है या नहीं

  2. IS NOT NULL के लिए रेल का दायरा खाली/खाली नहीं है?

  3. निकटतम पड़ोसियों के लिए पोस्टगिस एसक्यूएल

  4. जब पोस्टग्रेज में LIMIT का उपयोग किया जाता है तो अनुक्रमणिका का उपयोग नहीं किया जाता है

  5. पोस्टग्रेज में कॉलम को कई पंक्तियों में विभाजित करें