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

पीजी ::त्रुटि - हेरोकू पर संख्यात्मक क्षेत्र अतिप्रवाह

आपके पास एक numeric है टाइपमॉड के साथ फ़ील्ड numeric(8,2) और आप 999999.99 . से अधिक मान संग्रहीत करने का प्रयास कर रहे हैं इस में। देखें PostgreSQL मैनुअल NUMERIC संख्यात्मक पैमाने और सटीकता की जानकारी के लिए, जो कोष्ठक में प्रकार के बाद दिखाए गए क्वालिफायर हैं।

यह पहले का प्रश्न है ऐसा प्रतीत होता है कि इसी मुद्दे को रेल के साथ कवर किया गया है, जिसमें रेल मॉडल दिखाया गया है और पैमाने और सटीकता को कैसे सौंपा गया है।

NUMERIC दिनांक/समय फ़ील्ड नहीं है, यह एक संख्या फ़ील्ड है।

मुद्दे का डेमो:

regress=> SELECT  NUMERIC(8,2) '999999.99';
  numeric  
-----------
 999999.99
(1 row)

regress=> SELECT  NUMERIC(8,2) '1000000.00';
ERROR:  numeric field overflow
DETAIL:  A field with precision 8, scale 2 must round to an absolute value less than 10^6.

यह अफ़सोस की बात है कि पीजी आपको यह नहीं बताता कि यह कौन सा क्षेत्र है जब यह एक क्षेत्र है। हालांकि, ऐसा करना उसके लिए मुश्किल है, क्योंकि आमतौर पर यह नहीं पता होता है कि स्ट्रिंग अक्षर को पार्स करते समय कौन सा मान किस फ़ील्ड में जाने वाला है। सक्षम करें log_statement = 'all' में postgresql.conf , ALTER USER ... SET , ALTER DATABASE ... SET , या प्रति सत्र SET log_statement = 'all' . के साथ फिर क्वेरी लॉग का पुन:परीक्षण और जांच करें।

\dt . के साथ तालिका परिभाषाओं को भी देखें psql . में यह देखने के लिए कि numeric(8,2) . प्रकार क्या हो सकता है और समस्या पैदा कर सकता है।

यह स्थानीय रूप से क्यों काम करता है:क्या स्थानीय DB PostgreSQL है? ऐसा लगता है कि कुछ रेल उपयोगकर्ताओं के पास एक बहुत ही अजीब सेटअप है जहां वे स्थानीय रूप से SQLite का उपयोग करते हैं, और हेरोकू पर पोस्टग्रेएसक्यूएल का उपयोग करते हैं। यह अराजकता और परिनियोजन समस्याओं के लिए एक नुस्खा है। विकास और परीक्षण में एक ही डेटाबेस का प्रयोग करें। अगर यह है PostgreSQL स्थानीय रूप से, क्या यह वही संस्करण है?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL का उपयोग करके रेल में त्रुटि 'fe_sendauth:कोई पासवर्ड प्रदान नहीं किया गया' कैसे हल करें?

  2. Postgresql:सही या क्लॉज की संख्या के आधार पर रैंक की गणना करें

  3. PostgreSQL विंडो फ़ंक्शन:row_number () ओवर (col2 द्वारा पार्टिशन कॉल ऑर्डर)

  4. समय सीमा के लिए समय में समूहीकृत अंतरालों की गणना करें

  5. Sequelize इंस्टेंस विधियों तक नहीं पहुँच सकता