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

MySQL लोड XML INFILE के साथ समस्या

मुझे LOAD XML INFILE . का उपयोग करके ऐसा करने का कोई तरीका नहीं मिला सीडीएटीए सामग्री को संरक्षित करते समय। हालांकि, निम्नलिखित काम करता है और अच्छे पुराने LOAD DATA INFILE का उपयोग करता है ExtractValue() . के साथ एक ही काम पूरा करने के लिए:

अगर हमारे पास आपकी उदाहरण फ़ाइल और यह तालिका है:

CREATE TABLE `yahootable` (
  `id` int(11) NOT NULL PRIMARY KEY,
  `various` text,
  `message` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8
;

फिर इस कथन को चलाने से फ़ाइल की सामग्री तालिका में आयात हो जाएगी:

LOAD DATA INFILE 
    '/tmp/yahootable.xml'
INTO TABLE 
    yahootable
CHARACTER SET 'utf8'
LINES STARTING BY '<row>' TERMINATED BY '</row>'
(@tmp)
SET
  id      = ExtractValue(@tmp, '//id'),
  various = ExtractValue(@tmp, '//various'),
  message = ExtractValue(@tmp, '//message')
;

यह LOAD DATA INFILE को बताकर काम करता है कि प्रत्येक <row>...</row> एक तार्किक 'लाइन' है, जिसे यह स्थानीय चर में संग्रहीत करता है @tmp . फिर हम इसे ExtractValue को पास कर देते हैं। XML फ़्रैगमेंट के रूप में कार्य करें और उसमें से उन मानों का चयन करें जिन्हें हम उपयुक्त XPath अभिव्यक्तियों का उपयोग करके चाहते हैं।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. VB.NET MySQL कनेक्शन

  2. PHP के साथ MySQL तालिका में टैब सीमांकित पाठ फ़ाइल पढ़ें

  3. MySQL में कोलेशन कैसे खोजें

  4. Hadoop में apache airflow के साथ MySql को कॉन्फ़िगर करते समय समस्या का सामना करना पड़ रहा है

  5. Laravel 5 वाक्पटु जहाँ