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

खाली मान को इंटीजरफील्ड के रूप में कैसे स्टोर करें?

एक स्ट्रिंग एक पूर्णांक नहीं है; और एक खाली स्ट्रिंग None नहीं है या NULL . आपको क्या करना है उन उदाहरणों को पकड़ना है जहां फ़ील्ड खाली है और फिर उसे None . पर डालें ।

foo = "something" # "something" is coming from your CSV file

try:
   val = int(foo)
except ValueError:
   # foo is something that cannot be converted to
   # a number. It could be an empty string, or a
   # string like 'hello'
   # provide a default value
   val = None

# Now use val to insert into the database
f = MyModel()
f.age = val
f.save()

blank सख्ती से फ्रंट एंड सत्यापन के लिए है; इसका डेटाबेस पक्ष पर कोई प्रभाव नहीं पड़ता है:

NULL दूसरी ओर, डेटाबेस के साथ क्या करना है:

एक IntegerField मान की आवश्यकता होती है जिसे एक पूर्णांक में परिवर्तित किया जा सकता है, इसलिए जब आप रिक्त स्ट्रिंग . में पास करते हैं , यह इसे कास्ट नहीं कर सकता है और एक अपवाद उठाता है। इसके बजाय, यदि आप None . में पास होते हैं , और आपके पास age = models.IntegerField(null=True) . है , यह इसे सही ढंग से संग्रहीत करना जानता है।

संक्षेप में:

  • age = models.IntegerField()

    फ़ील्ड आवश्यक है और एक मान्य पूर्णांक मान की आवश्यकता है। यह स्वीकार नहीं करेगा None और डेटाबेस में कोई शून्य मान नहीं होगा। मान्य मान हैं -2147483648 से 2147483647

  • age = models.IntegerField(null=True)

    फ़ील्ड आवश्यक है (फ़ॉर्म सत्यापन)। यदि फ़ील्ड में None है एक मान के रूप में, इसका अनुवाद NULL . में किया जाएगा डेटाबेस में।

  • age = models.IntegerField(blank=True, null=True)

    फ़ील्ड की आवश्यकता नहीं है (फ़ॉर्म सत्यापन)। यदि फ़ील्ड None . में पास की गई है , इसका अनुवाद NULL . में किया जाएगा

  • age = models.IntegerField(blank=True)

    फ़ील्ड की आवश्यकता नहीं है (फॉर्म सत्यापन), लेकिन एक वैध पूर्णांक मान को पारित करने की आवश्यकता है क्योंकि डेटाबेस शून्य को स्वीकार नहीं करता है। आमतौर पर यहां आप इसे default=0 . के साथ एक डिफ़ॉल्ट मान देंगे या ओआरएम को मान सबमिट करने से पहले कुछ सत्यापन करवाएं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. php . का उपयोग करके डेटाबेस में चित्र सम्मिलित करें

  2. SQL इनर जॉइन - SQL और MySQL में 3 टेबल्स को कैसे जॉइन करें?

  3. mysql कॉलम को INT से TIMESTAMP में कनवर्ट करना

  4. मेरे कोड में पॉप अप रखने में त्रुटि (कनेक्शन पहले से खुला है)

  5. लारवेल क्वेरी बिल्डर - या तो उपनाम से समूह कैसे करें, या कच्चा समूह कैसे करें