यह आलेख MySQL डेटाबेस पर आधारित एप्लिकेशन सिस्टम को GBase डेटाबेस (GBase 8c) में स्थानांतरित करने के लिए एक त्वरित मार्गदर्शिका प्रदान करता है। दोनों डेटाबेस के विशिष्ट पहलुओं के बारे में विस्तृत जानकारी के लिए, पाठक MySQL आधिकारिक दस्तावेज़ (https://dev.mysql.com/doc/) और GBase 8c उपयोगकर्ता मैनुअल देख सकते हैं। MySQL डेटा प्रकारों की बुनियादी मैपिंग और माइग्रेशन प्रक्रिया के अन्य पहलुओं में शामिल व्यापक सामग्री के कारण, इस लेख में इसे विस्तार से शामिल नहीं किया जाएगा। यदि रुचि हो, तो कृपया एक टिप्पणी छोड़ें, और हम अगली बार इस पर चर्चा कर सकते हैं।
MySQL और GBase 8c दोनों में, डेटाबेस बनाने के लिए CREATE DATABASE स्टेटमेंट का उपयोग किया जाता है। विशिष्ट वाक्यविन्यास अंतर इस प्रकार हैं:
संचालन | MySQL SQL स्टेटमेंट | जीबेस 8सी एसक्यूएल स्टेटमेंट |
---|---|---|
डेटाबेस बनाएं | डेटाबेस उदाहरण बनाएं कैरेक्टर सेट utf8mb4 COLLATE utf8mb4_unicode_ci; | डेटाबेस उदाहरण बनाएं स्वामी gbase एन्कोडिंग 'UTF8' LC_COLLATE 'en_US.UTF-8' LC_CTYPE 'en_US.UTF-8'; |
डेटाबेस बनाने के लिए SQL स्टेटमेंट को माइग्रेट करने के लिए विचार:
(1) MySQL और GBase 8c दोनों में, आप डेटाबेस बनाते समय वर्ण सेट और मिलान नियम निर्दिष्ट कर सकते हैं।
MySQL के विपरीत, GBase 8c में, ENCODING कीवर्ड का उपयोग वर्ण सेट को निर्दिष्ट करने के लिए किया जाता है, और LC_COLLATE और LC_CTYPE कीवर्ड का उपयोग संयोजन नियमों को निर्दिष्ट करने के लिए किया जाता है:
LC_COLLATE: यह पैरामीटर स्ट्रिंग्स के सॉर्टिंग क्रम को प्रभावित करता है (उदाहरण के लिए, ORDER BY का उपयोग करते समय, साथ ही टेक्स्ट कॉलम पर इंडेक्स का क्रम)।
LC_CTYPE: यह पैरामीटर वर्ण वर्गीकरण को प्रभावित करता है, जैसे अपरकेस, लोअरकेस और अंक।
(2) GBase 8c में डेटाबेस बनाते समय, आप अद्वितीय अतिरिक्त विशेषताएँ भी निर्दिष्ट कर सकते हैं। सामान्य विशेषताओं में शामिल हैं:
मालिक: यह पैरामीटर डेटाबेस के मालिक को निर्दिष्ट करता है। यदि निर्दिष्ट नहीं है, तो स्वामी वर्तमान उपयोगकर्ता के लिए डिफ़ॉल्ट है।
कनेक्शन सीमा: यह पैरामीटर डेटाबेस द्वारा स्वीकार किए जा सकने वाले समवर्ती कनेक्शनों की संख्या निर्दिष्ट करता है। सिस्टम प्रशासक इस सीमा के अधीन नहीं हैं।
(3) डेटाबेस संरचना
MySQL में, डेटाबेस और स्कीमा पर्यायवाची हैं, और डेटाबेस एक दूसरे को संदर्भित कर सकते हैं। GBase 8c में, डेटाबेस और स्कीमा अलग-अलग ऑब्जेक्ट हैं। एक एकल डेटाबेस में कई स्कीमा हो सकते हैं, और डेटाबेस एक दूसरे को संदर्भित नहीं कर सकते हैं, लेकिन एक ही डेटाबेस के भीतर स्कीमा हो सकते हैं।
डेटाबेस के संचालन के लिए विभिन्न SQL कथनों की तुलना:
संचालन | MySQL SQL स्टेटमेंट | जीबेस 8सी एसक्यूएल स्टेटमेंट | GBase 8c gsql टूल |
---|---|---|---|
डेटाबेस देखें | डेटाबेस दिखाएँ; या डेटाबेस उदाहरण दिखाएँ; | pg_database से चुनें *; | \एल या \एल |
डेटाबेस स्विच करें | उपयोग उदाहरण; | स्विच करने के लिए पुनः कनेक्ट करें, यह फ़ंक्शन स्विच करने के लिए SQL का उपयोग नहीं करता है | \c उदाहरण |
डेटाबेस हटाएं | ड्रॉप डेटाबेस उदाहरण; | ड्रॉप डेटाबेस उदाहरण; | कोई नहीं |
MySQL और GBase 8c दोनों क्रिएट टेबल स्टेटमेंट का उपयोग करके टेबल बनाने का समर्थन करते हैं। विशिष्ट वाक्यविन्यास अंतर इस प्रकार हैं:
संचालन | MySQL SQL स्टेटमेंट | जीबेस 8सी एसक्यूएल स्टेटमेंट |
---|---|---|
Create TABLE का उपयोग करके तालिकाएँ बनाना | तालिका बनाएं `my_table` ( `id` int not NULL AUTO_INCREMENT COMMENT 'id', `user_id` int NOT NULL COMMENT 'User id', `name` varchar(50) Default शून्य टिप्पणी 'नाम', 'पता' वर्कर(50) डिफ़ॉल्ट शून्य टिप्पणी 'पता', `पासवर्ड` वर्कर(20) डिफ़ॉल्ट 'पासवर्ड' टिप्पणी 'पासवर्ड', प्राथमिक कुंजी (`आईडी) `) ) इंजन=इनोडीबी डिफॉल्ट चारसेट=utf8; |
तालिका बनाएं "my_table" ( "आईडी" सीरियल शून्य नहीं, "user_id" int शून्य नहीं, "नाम" वर्कर(50), "पता" वर्कर(50) , "passwd" varchar(20) डिफ़ॉल्ट 'पासवर्ड', CONSTRAINT "my_table_pkey" प्राथमिक कुंजी ("आईडी") ); कॉलम "my_table" पर टिप्पणी करें।"आईडी " IS 'id' है; कॉलम "my_table" पर टिप्पणी करें। my_table"।"पता" 'पता' है; कॉलम "my_table" पर टिप्पणी करें।"passwd" 'पासवर्ड' है; |
`my_table` जैसी तालिका `my_table_like` बनाएं; | टेबल बनाएं my_table_लाइक (जैसे my_table); | |
`my_table` से चयन * के रूप में तालिका `my_table_as` बनाएं; | my_table से चयन * के रूप में तालिका my_table_as बनाएं; |
MySQL में, डेटाबेस, टेबल और फ़ील्ड नाम मार्किंग के लिए बैकटिक्स (``) में संलग्न हैं। GBase 8c में इसकी अनुमति नहीं है; इसके बजाय, GBase 8c या तो दोहरे उद्धरण चिह्नों का उपयोग करता है या बिल्कुल भी कोई चिह्न नहीं।
GBase 8c में, यदि तालिका और फ़ील्ड नाम दोहरे उद्धरण चिह्नों में संलग्न नहीं हैं, तो तालिका बनने पर वे स्वचालित रूप से लोअरकेस में परिवर्तित हो जाते हैं। यदि आपको बड़े अक्षरों में नाम निर्दिष्ट करने की आवश्यकता है, तो आपको नामों को दोहरे उद्धरण चिह्नों में संलग्न करना होगा।
GBase 8c CREATE TABLE LIKE\AS सिंटैक्स का भी समर्थन करता है, लेकिन LIKE क्लॉज का उपयोग MySQL से भिन्न है। GBase 8c में, LIKE क्लॉज को "()" में संलग्न किया जाना चाहिए, और यह मूल तालिका कॉलम से टिप्पणी एनोटेशन को स्वचालित रूप से कॉपी नहीं करता है।
4. देखें-संबंधित विवरण
MySQL SQL स्टेटमेंट | जीबेस 8सी एसक्यूएल स्टेटमेंट | |
---|---|---|
मेरे_टेबल से चयन के रूप में दृश्य v_my_table बनाएं; | मेरे_टेबल से चयन के रूप में दृश्य v_my_table बनाएं; | |
v_my_table(user_id, नाम, पता) मान(2222, 'bbb', 'xxxx') में डालें; | समर्थित, लेकिन डिफ़ॉल्ट नियम को समायोजित करने की आवश्यकता है | |
ड्रॉप व्यू v_my_table; | ड्रॉप व्यू v_my_table; |
MySQL SQL स्टेटमेंट | जीबेस 8सी एसक्यूएल स्टेटमेंट | |
---|---|---|
my_table (user_id) पर BTREE का उपयोग करके इंडेक्स i_user_id बनाएं; | या BTREE का उपयोग करके my_table (user_id) पर इंडेक्स i_user_id बनाएं;
BTREE (user_id) का उपयोग करके my_table पर इंडेक्स i_user_id बनाएं; |
|
इंडेक्स i_user_id को my_table पर ड्रॉप करें; | ड्रॉप इंडेक्स i_user_id; |
MySQL में, USING Index_type क्लॉज टेबल_नाम (col_name) क्लॉज से पहले या बाद में दिखाई दे सकता है, जैसा कि दिखाया गया है:
... इंडेक्स_टाइप टेबल_नाम(कॉल_नाम) का उपयोग कर रहे हैं...
या
... टेबल_नाम(कॉल_नाम) इंडेक्स_टाइप का उपयोग कर रहे हैं...
हालांकि, GBase 8c में, USING Index_type क्लॉज को टेबल_नाम(col_name) क्लॉज के बीच में रखा जाना चाहिए:
... तालिका_नाम उपयोग सूचकांक_प्रकार (कॉल_नाम) ...
(2) तालिका पर सूचकांक छोड़ें
GBase 8c में, किसी इंडेक्स ऑब्जेक्ट को हटाते समय, आपको ON टेबल क्लॉज निर्दिष्ट करने की आवश्यकता नहीं है। प्रवासन के दौरान इस खंड को हटा दिया जाना चाहिए।
इंडेक्स ऑब्जेक्ट बनाते समय GBase 8c FULLTEXT और SPATIAL गुणों का समर्थन नहीं करता है। माइग्रेशन के दौरान इन संपत्तियों को हटाने की आवश्यकता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3