मेरा प्रदाता मेरी साइट ड्रूपल सीएमएस में स्थापित है। अब मुझे पुरानी साइट से अपने सभी डेटा कॉपी करने की जरूरत है। मेरे पुराने डीबी में उपसर्ग के बिना टेबल हैं, लेकिन नए डीबी में सभी टेबलों में dp_[table_name]
उपसर्ग है।मैं अपने MySQL डीबी में सभी तालिकाओं में उपसर्ग कैसे बदल सकता हूं?
उत्तर
zerkms समाधान मेरे लिए काम नहीं किया। Tables
तालिका से पूछताछ करने में सक्षम होने के लिए मुझे information_schema
डेटाबेस निर्दिष्ट करना था।
SELECT
CONCAT('RENAME TABLE ', GROUP_CONCAT('`', TABLE_SCHEMA, '`.`', TABLE_NAME, '` TO `', TABLE_SCHEMA, '`.`prefix_', TABLE_NAME, '`')) AS q
FROM
`information_schema`.`Tables` WHERE TABLE_SCHEMA='test';
संपादित करें:
केवल कॉल RENAME तालिका करने के लिए क्वेरी एक बार अनुकूलित। मैं जो कुछ चला गया वह तथ्य था कि समेकित आउटपुट 341 वर्णों पर छोटा हो गया। इस हल किया जा सकता है (यदि आपके सर्वर द्वारा अनुमति) एक उच्च मूल्य के लिए MySQL चर group_concat_max_len
की स्थापना द्वारा:
SET group_concat_max_len = 3072; -- UTF8 assumes each character will take 3 bytes, so 3072/3 = 1024 characters.
एक ऐसी स्क्रिप्ट लिखें जो प्रत्येक तालिका के लिए RENAME तालिका चलाएगी।
SELECT
GROUP_CONCAT('RENAME TABLE `', TABLE_SCHEMA, '`.`', TABLE_NAME, '` TO `', TABLE_SCHEMA, '`.`prefix_', TABLE_NAME, '`;' SEPARATOR ' ')
FROM
`TABLES` WHERE `TABLE_SCHEMA` = "test";
जहां "परीक्षण" डेटाबेस नाम
उम्मीद है इस के बाद आप कर सकते हैं लंबे क्वेरी कि उपसर्गों अगर आप निष्पादित यह ;-)
आप बस डेटाबेस डंप कर सकते हैं, डंप खोलने जोड़ देगा एक टेक्स्ट एडिटर के साथ, "टेबल बनाएं" के साथ "तालिका बनाएं" के सभी घटनाओं को प्रतिस्थापित करें और डेटाबेस को पुनर्स्थापित करें। ऐसा करने में कुछ मिनट लगते हैं।
जब तक डेटाबेस कुछ गीगाबाइट्स से कम न हो ;-) – zerkms
मैं गेम हूं। :) जीबी से बड़े डेटाबेस के लिए, एक क्वेरी टूल (उदाहरण के लिए एसक्यूएल वर्कबेंच) का उपयोग करें, तालिका सूची में सभी टेबल का चयन करें, सामग्री को स्प्रेडशीट के कॉलम ए में कॉपी करें (मेरे मामले में, कैल्क) और निम्नलिखित डालें कॉलम बी में सूत्र: = "नाम बदलें तालिका" और ए 1 और "डीपी_" और ए 1 & "; "सेल बी 1 से सूत्र को प्रत्येक अन्य बी कॉलम सेल में पेस्ट करें और नाम बदलें स्क्रिप्ट कॉलम बी! –
में दिखाई देता है जैसा कि मैंने अपने उत्तर में कहा था - नाम बदलने का एक उचित तरीका है RENAME टेबल (+ info_shema टेबल नाम पुनर्प्राप्त करने के लिए) का उपयोग करना – zerkms
phpMyAdmin आप अब ऐसा करने के लिए अनुमति देता है। "डेटाबेस" स्तर पर सभी तालिकाओं को देखने के लिए संरचना टैब का चयन करें। 'सभी जांचें' पर क्लिक करें (तालिका सूची के नीचे)। 'चयनित' ड्रॉपडाउन पर चुनें: 'तालिका उपसर्ग बदलें'।
- 1. मैं अपने डेटाबेस में सभी टेबल कैसे छोड़ सकता हूं?
- 2. MySQL में, मैं डेटाबेस के भीतर टेबल का नाम बदल सकता हूं?
- 3. मैं दो MySQL तालिकाओं को कैसे विलय कर सकता हूं?
- 4. मैं ओपनएक्स-2.6.4 में डेटाबेस सेटिंग्स कैसे बदल सकता हूं?
- 5. मैं अपने आईओएस प्रोजेक्ट का नाम कैसे बदल सकता हूं?
- 6. मैं अपने आवेदन की भाषा कैसे बदल सकता हूं?
- 7. मैं अपने हाईचार्ट्स पाइचर्ट के रंग कैसे बदल सकता हूं?
- 8. सभी तालिकाओं से चुनें - MySQL
- 9. कैसे अलग MySQL तालिकाओं
- 10. मैं एक्सएमएल में सभी नेमस्पेस कैसे सूचीबद्ध कर सकता हूं?
- 11. एक MySQL डेटाबेस में सभी तालिकाओं को कैसे हटाएं?
- 12. डेटाबेस में सभी तालिकाओं का नाम बदलें
- 13. मैं अपने WinForm एप्लिकेशन में पिक्चरबॉक्स में मौजूदा टूलटिप नियंत्रण का टेक्स्ट कैसे बदल सकता हूं?
- 14. मैं ग्रहण विषय कैसे बदल सकता हूं?
- 15. एसक्यूएल सर्वर 2008 मैं अपने डीबी से सभी को कैसे डिस्कनेक्ट कर सकता हूं?
- 16. मैं बिट्ससेट को सी ++ में छोटा कैसे बदल सकता हूं?
- 17. मैं रेल में फ़ील्ड_फील्ड की लंबाई कैसे बदल सकता हूं?
- 18. मैं विम में किसी फ़ोल्डर में सभी फ़ाइलों को एक शब्द को कैसे बदल सकता हूं?
- 19. मैं Python3 में एक MySQL डीबी में इनपुट से कैसे बच सकता हूं?
- 20. फ़ॉर्म में फोरच कंट्रोल, मैं अपने फॉर्म में सभी टेक्स्टबॉक्स में कुछ कैसे कर सकता हूं?
- 21. मैं अपने सभी PHPUnit परीक्षण कैसे चला सकता हूं?
- 22. MySQL में एकाधिक तालिकाओं से कैसे हटाएं?
- 23. मैं Symfony2 में सभी नियंत्रकों के लिए कुछ रूट उपसर्ग कैसे जोड़ सकता हूं?
- 24. मैं Xcode4 में invisibles का रंग कैसे बदल सकता हूं?
- 25. क्या मैं अपने फ़ोल्डर ब्रॉउज़रडियलॉग का शीर्षक बदल सकता हूं?
- 26. कैसे सभी तालिकाओं
- 27. सभी पंक्तियों के सभी क्षेत्रों में सभी तालिकाओं के लिए मैं एक MySQL डेटाबेस में स्ट्रिंग को कैसे प्रतिस्थापित कर सकता हूं?
- 28. रेल में सभी तालिकाओं से सभी डेटा कैसे हटाएं?
- 29. वर्डप्रेस में मैं एक्शन प्राथमिकता कैसे बदल सकता हूं?
- 30. मैं बिटमैप को उरी में कैसे बदल सकता हूं?
सच है, यह मेरे लिए काम करता है क्योंकि मैं जूमला का उपयोग कर लोकहोस्ट एक्सएएमपीपी पर काम कर रहा था और मैं ऑटो जूमला उपसर्ग में बदलना चाहता था। मैं आपके चरणों का पालन करता हूं- मुझे 'info_schema''Tables' निर्दिष्ट करना था जैसा आपने किया था और SET group_concat_max_len = 10240 सेट किया था; मेरे मामले में क्योंकि कई टेबल थे। +1 – MJoraid
एक और बिंदु, आप डेटाबेस पर तालिका को स्थानांतरित करने के लिए एक ही कमांड का उपयोग कर सकते हैं (बैकअप_डीबी कहें) जैसे: 'चुनें CONCAT (' RENAME टेबल ', TABLE_NAME,' to backup_db। ', TABLE_NAME,'; ') INFORMATION_SCHEMA से। तालिकाएं जहां table_schema = 'testbot'; ' – sactiw
'group_concat_max_len' चर के बारे में संपादन को इंगित करता है! मुझे पूरा वाक्य नहीं मिला था, न ही महान काम किया! – AlexGH