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

MySQL लोड डेटा:यह कमांड अभी तक तैयार स्टेटमेंट प्रोटोकॉल में समर्थित नहीं है

आप PREPARE का उपयोग नहीं कर सकते हैं चलाने के लिए LOAD DATA INFILE .

उन कथनों की सूची जिन्हें आप PREPARE . के साथ चला सकते हैं इस पृष्ठ में प्रलेखित हैं:https:/ /dev.mysql.com/doc/refman/5.7/hi/sql-syntax-prepared-statements.html "तैयार विवरणों में अनुमत SQL सिंटैक्स" उपशीर्षक के तहत। ध्यान दें कि यह सूची MySQL के पुराने संस्करणों में भिन्न हो सकती है।

क्योंकि आप PREPARE का उपयोग नहीं कर सकते हैं , आप एक वैरिएबल सेट करके और एक डायनामिक SQL स्टेटमेंट बनाकर वह तरीका नहीं कर सकते जिसका आप उपयोग कर रहे हैं।

लेकिन आप LOAD DATA INFILE चला सकते हैं PREPARE using का उपयोग किए बिना . आपको शेल वेरिएबल प्रतिस्थापन का उपयोग करके फ़ाइल नाम को कथन में इंटरपोलेट करना होगा और फिर इसे सीधे SQL कथन के रूप में चलाना होगा।

आपकी update.sql फ़ाइल कुछ इस तरह दिख सकती है:

LOAD DATA LOCAL INFILE '%spacename%' INTO TABLE tmp 
FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';

फिर आप अपने शेल वेरिएबल को फ़ाइल में स्थानापन्न कर सकते हैं और परिणाम को इस प्रकार चला सकते हैं:

sed s/%spacename%/$1/ update.sql | 
  mysql -h "localhost" -u "root" "-pmypassword" "mydb"

एक और आसान तरीका है mysqlimport का इस्तेमाल करना , इसके अलावा यह आवश्यक है कि इनपुट फ़ाइल नाम आपके तालिका नाम के समान हो। आप या तो अपनी इनपुट फ़ाइल का नाम बदलकर उस तालिका से मिलान कर सकते हैं जिसमें आप लोड करना चाहते हैं (जिसे आप tmp कहते हैं) ), या फिर एक प्रतीकात्मक लिंक बनाएं:

ln -s $1 /tmp/tmp.list
mysqlimport --local -h "localhost" -u "root" "-pmypassword" "mydb" /tmp/tmp.list
rm -f /tmp/tmp.list

".list" एक्सटेंशन को mysqlimport द्वारा अनदेखा कर दिया जाता है, इसलिए आप किसी भी फ़ाइल एक्सटेंशन का उपयोग कर सकते हैं, या कोई भी नहीं।



  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

  2. 'प्राथमिक' कुंजी के लिए डुप्लिकेट प्रविष्टि '0'

  3. MySQL डेटाबेस मैनेजमेंट सिस्टम (DBMS) के वर्तमान संस्करण को कैसे पुनः प्राप्त करें?

  4. meta_query, संबंध या और और दोनों का उपयोग करके खोज कैसे करें?

  5. WAMP सर्वर हरे रंग में लेकिन केवल 404 . प्राप्त करें