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

क्या डेटा प्रकार NUMERIC स्टोर हस्ताक्षरित मानों को पोस्टग्रेज़ कर सकता है?

आप निश्चित रूप से मनमाने ढंग से सटीक प्रकार का उपयोग कर सकते हैं numeric 5 की सटीकता और 1 के पैमाने के साथ, जैसे @Simon ने टिप्पणी की, लेकिन सिंटैक्स त्रुटि के बिना। अल्पविराम का प्रयोग करें(, ) डॉट के बजाय (. ) प्रकार संशोधक में:

SELECT numeric(5,1) '-999.9' AS nr_lower
     , numeric(5,1) '9999.9' AS nr_upper;

 nr_lower | nr_upper
----------+----------
   -999.9 |   9999.9

स्ट्रिंग लिटरल में माइनस साइन और डॉट की गिनती अधिकतम महत्वपूर्ण अंकों (precision) में नहीं होती है। ).
यदि आपको लंबाई सीमित करने की आवश्यकता नहीं है, तो बस numeric . का उपयोग करें .
यदि आपको न्यूनतम और अधिकतम लागू करने की आवश्यकता है, तो एक चेक बाधा जोड़ें:

CHECK (nr_column BETWEEN -999.9 AND 9999.9)

numeric आपका नंबर स्टोर करता है बिल्कुल . यदि आपको पूर्ण सटीकता की आवश्यकता नहीं है और छोटी गोलाई त्रुटियां कोई समस्या नहीं हैं, तो आप फ़्लोटिंग पॉइंट प्रकारों में से एक का भी उपयोग कर सकते हैं double precision (float8 ) या real (float4 )।

या, चूंकि आप केवल एक भिन्नात्मक दशमलव अंक की अनुमति देते हैं, आप 10 से गुणा कर सकते हैं और integer का उपयोग कर सकते हैं , जो सबसे कुशल भंडारण होगा:4 बाइट्स, कोई गोलाई त्रुटि नहीं और सबसे तेज़ प्रसंस्करण। बस नंबर का ठीक से उपयोग और दस्तावेज करें।

मैनुअल में संख्यात्मक प्रकारों के लिए विवरण।




  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. psql अमान्य कमांड \N जबकि sql को पुनर्स्थापित करें

  3. org.postgresql.util.PSQLException:FATAL:क्षमा करें, पहले से ही बहुत सारे ग्राहक हैं

  4. Postgresql में एक-के-दो नहीं शून्य बाधा जोड़ना

  5. PostgreSQL में ग्रेटेस्ट () फ़ंक्शन