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

mysql + कॉलम हेडर में रिक्त स्थान वाली फ़ाइल आयात करना + कैसे संभालना है

MySQL LOAD DATA स्टेटमेंट फ़ाइल से मानों को स्थिति के अनुसार लोड करता है , नाम से नहीं।

MySQL को फ़ील्ड के "नाम" (.csv फ़ाइल में हेडर लाइन से) किसी भी कॉलम नाम "मिलान" के बारे में कोई आवश्यकता नहीं है। (यह संभव है कि आपके सिस्टम के किसी अन्य घटक में उस प्रकार की आवश्यकता हो, लेकिन MySQL LOAD DATA में ऐसा नहीं है।)

यह एक .csv फ़ाइल के लिए मान्य है जिसमें हेडर लाइन नहीं है। जब कोई हेडर लाइन होती है, तो हम आमतौर पर IGNORE 1 LINES का उपयोग करके इसे "स्किप ओवर" करते हैं। ।

इसके अलावा, मैं FIELDS . कीवर्ड का उपयोग करना पसंद करता हूं COLUMNS . के स्थान पर LOAD DATA विवरण में ।

MySQL में, बैकटिक वर्णों का उपयोग करके पहचानकर्ता (कॉलम नाम, तालिका नाम) से बच सकते हैं। किसी ऐसे पहचानकर्ता का उपयोग करने के लिए जिसमें अमान्य वर्ण शामिल हैं, जैसे रिक्त स्थान, पहचानकर्ता को अवश्य ही छोड़ देना चाहिए।

CREATE TABLE ... 
... 
`Rec Open Date` DATE NOT NULL COMMENT 'Rec Open Date',
^             ^

मेरे कीबोर्ड पर, बैकटिक ऊपरी बाईं ओर की कुंजी है ` ~ 1 के ठीक बाईं ओर! कुंजी।

ANSI_QUOTES

अगर sql_mode वेरिएबल में ANSI_QUOTES शामिल है , तो आप पहचानकर्ताओं से बचने के लिए दोहरे उद्धरण चिह्नों का भी उपयोग कर सकते हैं। उदा.

SHOW VARIABLES LIKE 'sql_mode' ;

SET sql_mode = 'ANSI_QUOTES,...' ;

SHOW VARIABLES LIKE 'sql_mode'

Variable_name  Value        
-------------  -----------
sql_mode       ANSI_QUOTES  

फिर:

CREATE TABLE ... 
... 
"Rec Open Date" DATE NOT NULL COMMENT 'Rec Open Date',
^             ^

अगर sql_mode नहीं करता है ANSI_QUOTES शामिल करें (या तो स्पष्ट रूप से या किसी अन्य सेटिंग में शामिल), तो पहचानकर्ताओं के आसपास के दोहरे उद्धरण काम नहीं करते हैं। और पहचानकर्ताओं के आस-पास सिंगल कोट्स का उपयोग करना कभी भी काम नहीं करना चाहिए... सिंगल कोट्स में स्ट्रिंग लिटरल्स होते हैं।

टेकअवे:पहचानकर्ताओं (कॉलम नाम, टेबल नाम, आदि) से बचने के लिए बैकटिक वर्णों का उपयोग करें और स्ट्रिंग अक्षर के आसपास सिंगल कोट्स का उपयोग करें। ANSI_QUOTES सेट होने पर भी अपना SQL कोड काम करने के लिए स्ट्रिंग अक्षर के आसपास दोहरे उद्धरण चिह्नों का उपयोग करने से बचें।




  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. अनुक्रमित/अद्वितीय फ़ील्ड पर पूछताछ करते समय MySQL LIMIT 1 का उपयोग करने का कोई मतलब है?

  3. MySQL रो 30153 GROUP_CONCAT () त्रुटि द्वारा काटा गया था

  4. प्रत्येक विवरण के साथ सभी डेटा परिवर्तनों को स्टोर करें (जैसे स्टैक ओवरफ्लो)

  5. स्प्रिंग बूट:Jdbc javax.net.ssl.SSLException:सहकर्मी के close_notify प्राप्त करने से पहले इनबाउंड बंद करना