"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > MySQL से GBase माइग्रेशन गाइड

MySQL से GBase माइग्रेशन गाइड

2024-08-17 को प्रकाशित
ब्राउज़ करें:281

MySQL to GBase Migration Guide

यह आलेख MySQL डेटाबेस पर आधारित एप्लिकेशन सिस्टम को GBase डेटाबेस (GBase 8c) में स्थानांतरित करने के लिए एक त्वरित मार्गदर्शिका प्रदान करता है। दोनों डेटाबेस के विशिष्ट पहलुओं के बारे में विस्तृत जानकारी के लिए, पाठक MySQL आधिकारिक दस्तावेज़ (https://dev.mysql.com/doc/) और GBase 8c उपयोगकर्ता मैनुअल देख सकते हैं। MySQL डेटा प्रकारों की बुनियादी मैपिंग और माइग्रेशन प्रक्रिया के अन्य पहलुओं में शामिल व्यापक सामग्री के कारण, इस लेख में इसे विस्तार से शामिल नहीं किया जाएगा। यदि रुचि हो, तो कृपया एक टिप्पणी छोड़ें, और हम अगली बार इस पर चर्चा कर सकते हैं।

1. एक डेटाबेस बनाना

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 में, डेटाबेस और स्कीमा अलग-अलग ऑब्जेक्ट हैं। एक एकल डेटाबेस में कई स्कीमा हो सकते हैं, और डेटाबेस एक दूसरे को संदर्भित नहीं कर सकते हैं, लेकिन एक ही डेटाबेस के भीतर स्कीमा हो सकते हैं।

2. डेटाबेस का उपयोग करना

डेटाबेस के संचालन के लिए विभिन्न SQL कथनों की तुलना:

संचालन MySQL SQL स्टेटमेंट जीबेस 8सी एसक्यूएल स्टेटमेंट GBase 8c gsql टूल
डेटाबेस देखें डेटाबेस दिखाएँ; या डेटाबेस उदाहरण दिखाएँ; pg_database से चुनें *; \एल या \एल
डेटाबेस स्विच करें उपयोग उदाहरण; स्विच करने के लिए पुनः कनेक्ट करें, यह फ़ंक्शन स्विच करने के लिए SQL का उपयोग नहीं करता है \c उदाहरण
डेटाबेस हटाएं ड्रॉप डेटाबेस उदाहरण; ड्रॉप डेटाबेस उदाहरण; कोई नहीं

3. टेबल्स बनाना

MySQL और GBase 8c दोनों क्रिएट टेबल स्टेटमेंट का उपयोग करके टेबल बनाने का समर्थन करते हैं। विशिष्ट वाक्यविन्यास अंतर इस प्रकार हैं:

Create TABLE का उपयोग करके तालिकाएँ बनाना...जैसेCreate TABLE का उपयोग करके तालिकाएँ बनाना ... AS
संचालन 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 बनाएं;
टेबल बनाने के लिए SQL स्टेटमेंट को माइग्रेट करते समय, निम्नलिखित सिंटैक्स परिवर्तन की आवश्यकता होती है:

(1) नामकरण नियम और मामले की संवेदनशीलता

MySQL में, डेटाबेस, टेबल और फ़ील्ड नाम मार्किंग के लिए बैकटिक्स (``) में संलग्न हैं। GBase 8c में इसकी अनुमति नहीं है; इसके बजाय, GBase 8c या तो दोहरे उद्धरण चिह्नों का उपयोग करता है या बिल्कुल भी कोई चिह्न नहीं।
GBase 8c में, यदि तालिका और फ़ील्ड नाम दोहरे उद्धरण चिह्नों में संलग्न नहीं हैं, तो तालिका बनने पर वे स्वचालित रूप से लोअरकेस में परिवर्तित हो जाते हैं। यदि आपको बड़े अक्षरों में नाम निर्दिष्ट करने की आवश्यकता है, तो आपको नामों को दोहरे उद्धरण चिह्नों में संलग्न करना होगा।

(2) स्टोरेज इंजन संबंधित परिवर्तन

    GBase 8c में माइग्रेट करते समय, आपको MySQL स्टेटमेंट से स्टोरेज इंजन से संबंधित क्लॉज जैसे इंजन और टाइप को हटाना होगा।
  • GBase 8c तालिका स्तर पर कैरेक्टर सेट सेट करने का समर्थन नहीं करता है, इसलिए GBase 8c पर माइग्रेट करते समय MySQL स्टेटमेंट में CHARSET क्लॉज को हटा दिया जाना चाहिए।
(3) तालिका बनाएं जैसे\AS

GBase 8c CREATE TABLE LIKE\AS सिंटैक्स का भी समर्थन करता है, लेकिन LIKE क्लॉज का उपयोग MySQL से भिन्न है। GBase 8c में, LIKE क्लॉज को "()" में संलग्न किया जाना चाहिए, और यह मूल तालिका कॉलम से टिप्पणी एनोटेशन को स्वचालित रूप से कॉपी नहीं करता है।
4. देखें-संबंधित विवरण

MySQL और GBase 8c दोनों दृश्य का समर्थन करते हैं, और मूल निर्माण विधि समान है। हालाँकि, यह ध्यान रखना महत्वपूर्ण है कि GBase 8c में, डिफ़ॉल्ट नियम के तहत, किसी दृश्य में डेटा को सीधे संशोधित करना समर्थित नहीं है।

संचालनएक दृश्य बनानाएक दृश्य के माध्यम से डेटा को संशोधित करनाएक दृश्य छोड़ना
MySQL SQL स्टेटमेंट जीबेस 8सी एसक्यूएल स्टेटमेंट
मेरे_टेबल से चयन के रूप में दृश्य v_my_table बनाएं; मेरे_टेबल से चयन के रूप में दृश्य v_my_table बनाएं;
v_my_table(user_id, नाम, पता) मान(2222, 'bbb', 'xxxx') में डालें; समर्थित, लेकिन डिफ़ॉल्ट नियम को समायोजित करने की आवश्यकता है
ड्रॉप व्यू v_my_table; ड्रॉप व्यू v_my_table;
5. सूचकांक-संबंधित विवरण

MySQL और GBase 8c दोनों अनुक्रमणिका कार्यक्षमता का समर्थन करते हैं, लेकिन निर्माण और विलोपन संचालन में थोड़े अंतर हैं। मूल वाक्यविन्यास अंतर इस प्रकार हैं:

संचालनसूचकांक बनानायागिराता सूचकांक
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;
सूचकांक निर्माण और विलोपन कथनों को स्थानांतरित करने के लिए ध्यान देने योग्य बिंदु:

(1) USING Index_type की स्थिति

MySQL में, USING Index_type क्लॉज टेबल_नाम (col_name) क्लॉज से पहले या बाद में दिखाई दे सकता है, जैसा कि दिखाया गया है:
... इंडेक्स_टाइप टेबल_नाम(कॉल_नाम) का उपयोग कर रहे हैं...

या

... टेबल_नाम(कॉल_नाम) इंडेक्स_टाइप का उपयोग कर रहे हैं...

हालांकि, GBase 8c में, USING Index_type क्लॉज को टेबल_नाम(col_name) क्लॉज के बीच में रखा जाना चाहिए:

... तालिका_नाम उपयोग सूचकांक_प्रकार (कॉल_नाम) ...

(2) तालिका पर सूचकांक छोड़ें

GBase 8c में, किसी इंडेक्स ऑब्जेक्ट को हटाते समय, आपको ON टेबल क्लॉज निर्दिष्ट करने की आवश्यकता नहीं है। प्रवासन के दौरान इस खंड को हटा दिया जाना चाहिए।

(3) अन्य संपत्तियां

इंडेक्स ऑब्जेक्ट बनाते समय GBase 8c FULLTEXT और SPATIAL गुणों का समर्थन नहीं करता है। माइग्रेशन के दौरान इन संपत्तियों को हटाने की आवश्यकता है।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/congcong/mysql-to-gbase-8c-migration-guide-31ch?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3