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

MySQL में LOAD_FILE () फ़ंक्शन कैसे काम करता है

MySQL में, LOAD_FILE() फ़ंक्शन किसी फ़ाइल को पढ़ता है और उसकी सामग्री को एक स्ट्रिंग के रूप में लौटाता है।

सिंटैक्स

वाक्य रचना इस प्रकार है:

LOAD_FILE(file_name)

जहां file_name फ़ाइल का पूरा पथ है।

उदाहरण

यहां एक उदाहरण दिया गया है जहां मैं फ़ाइल से सामग्री का चयन करता हूं:

SELECT LOAD_FILE('/data/test.txt') AS Result;

परिणाम:

+------------------------------------------+
| Result                                   |
+------------------------------------------+
| This text is all that the file contains! |
+------------------------------------------+

एक डेटाबेस उदाहरण

फ़ाइल की सामग्री को डेटाबेस में सम्मिलित करते समय क्वेरी कैसी दिख सकती है, इसका एक उदाहरण यहां दिया गया है:

INSERT INTO MyTable (FileId, UserId, MyBlobColumn) 
VALUES (1, 20, LOAD_FILE('/data/test.txt'));

इस मामले में, कॉलम MyBlobColumn बीएलओबी का डेटा प्रकार है (जो इसे बाइनरी डेटा स्टोर करने की अनुमति देता है)।

और अब जबकि यह डेटाबेस में है, हम इसे चुन सकते हैं:

SELECT MyBlobColumn
  FROM MyTable
  WHERE UserId = 20;

परिणाम:

+------------------------------------------+
| MyBlobColumn                             |
+------------------------------------------+
| This text is all that the file contains! |
+------------------------------------------+

अगर फ़ाइल मौजूद नहीं है

अगर फ़ाइल मौजूद नहीं है, NULL लौटा दिया गया है:

SELECT LOAD_FILE('/data/oops.txt') AS Result;

परिणाम:

+--------+
| Result |
+--------+
| NULL   |
+--------+

अधिक कारण आपको NULL मिल सकते हैं

आपको NULL भी मिलेगा निम्न में से कोई एक शर्त पूरी नहीं होती:

  • फ़ाइल सर्वर होस्ट पर स्थित होनी चाहिए।
  • आपके पास FILE होना चाहिए फ़ाइल को पढ़ने के लिए विशेषाधिकार। एक उपयोगकर्ता जिसके पास FILE . है विशेषाधिकार सर्वर होस्ट पर किसी भी फ़ाइल को पढ़ सकता है जो या तो विश्व-पठनीय है या MySQL सर्वर द्वारा पठनीय है।
  • फ़ाइल सभी के द्वारा पठनीय होनी चाहिए और इसका आकार max_allowed_packet से कम होना चाहिए बाइट्स। यहां बताया गया है कि आप इसकी जांच कैसे कर सकते हैं:
    SHOW VARIABLES LIKE 'max_allowed_packet';

    मेरा परिणाम:

    +--------------------+----------+
    | Variable_name      | Value    |
    +--------------------+----------+
    | max_allowed_packet | 67108864 |
    +--------------------+----------+
  • यदि secure_file_priv सिस्टम चर एक गैर-रिक्त निर्देशिका नाम पर सेट है, लोड की जाने वाली फ़ाइल उस निर्देशिका में स्थित होनी चाहिए। यहां बताया गया है कि आप इसे कैसे देख सकते हैं:
    SHOW VARIABLES LIKE 'secure_file_priv';

    मेरा परिणाम:

    +------------------+--------+
    | Variable_name    | Value  |
    +------------------+--------+
    | secure_file_priv | /data/ |
    +------------------+--------+

    इस उदाहरण में, मैं केवल /data/ . से फ़ाइलें पढ़ सकता हूं निर्देशिका।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एकाधिक पंक्तियों के लिए एकल क्वेरी में सम्मिलित करने के लिए MySQL ON DUPLICATE KEY UPDATE

  2. मैं कैसे पता लगा सकता हूं कि कौन सा लेनदेन तालिका मेटाडेटा लॉक स्थिति की प्रतीक्षा कर रहा है?

  3. MYSQL सेल्फ-जॉइन कैसे काम करता है?

  4. मास्टर-मास्टर MySQL डेटाबेस प्रतिकृति कॉन्फ़िगर करें

  5. चेतावनी:PDO::__construct():[2002] ऐसी कोई फ़ाइल या निर्देशिका (unix:///tmp/mysql.sock के माध्यम से कनेक्ट करने का प्रयास) में नहीं