6.1 डेटाबेस की संरचना को बदलना

और अंत में, डेटाबेस के साथ काम करने का सबसे स्वादिष्ट हिस्सा डेटाबेस को बदल रहा है। यदि आपको लगता है कि यह बहुत सरल बात है, तो यहाँ आपके लिए इस विषय पर एक किस्सा है:


The service station master, wiping his hands, hands over the car to the client and chats along the way:
- But who do you work for?
- I am a cardiac surgeon, I perform heart operations.
- And they pay a lot?
- $20,000 per operation.
- Nothing for myself ... But we, in fact, are doing the same thing, sorting out the engines, and they pay me only $ 300 ...
- Do you want to earn as much as I do?
- Want...
The surgeon starts the engine in the car and turns to the master:
- Move over!

डेटाबेस के साथ स्थिति बिल्कुल वैसी ही है। आप अलग टेबल में डेटा का एक हिस्सा निकालना चाहते हैं? ठीक है, आपको चाहिए:

  • एक नई तालिका बनाएँ
  • डेटा को इस नई तालिका में कॉपी करें
  • पुरानी टेबल से कॉलम हटाएं
  • पुरानी तालिका को संदर्भित सभी SQL क्वेरीज़ को बदलें
  • SQL क्वेरी जोड़ें जो नई तालिका तक पहुँच प्राप्त करेगी
  • पुराने तरीके से टेबल के साथ काम करने वाले जावा कोड को बदलें
  • बैकअप बदलें और स्क्रिप्ट को पुनर्स्थापित करें, क्योंकि अब तालिका संरचना मेल नहीं खाती है
  • यदि आपके पास डेवलपर्स के लिए टेस्ट डेटा है, तो आपको उन्हें भी बदलने की जरूरत है

हालांकि वास्तव में यह और भी बुरा है:

नई डेटाबेस संरचना:

  • सबसे पहले आप डेवलपर की मशीन पर तालिका संरचना को बदलते हैं
  • तो आप आश्वस्त हैं कि ऐसी संरचना वास्तव में बेहतर है
  • नई डेटाबेस संरचना को मंजूरी

प्रवासन स्क्रिप्ट:

  • आप ऐसी स्क्रिप्ट लिखते हैं जो वास्तविक डेटाबेस पर टेबल डेटा आदि को बदल देगी
  • इन स्क्रिप्ट को पुराने डेटाबेस संरचना वाली मशीन पर चलाएं और देखें कि यह कैसे बदलती है
  • नए आधार के सभी महत्वपूर्ण स्थानों को सत्यापित करें

बिक्री पर अद्यतन

  • उत्पादन डेटाबेस बंद करो
  • पूर्ण बैकअप बनाओ
  • स्क्रिप्ट निष्पादित करना
  • चूंकि आमतौर पर बाजार में बहुत कुछ होता है, इसलिए ये स्क्रिप्ट घंटों तक काम कर सकती हैं

आप उत्पादों को लॉन्च करते हैं और आशा करते हैं कि आपको सब कुछ वापस रोल करने की आवश्यकता नहीं है।

6.2 आल्टर टेबल स्टेटमेंट

दूसरी ओर, तालिका संरचना को बदलने वाली स्क्रिप्ट ही बहुत सरल है। कुछ मायनों में, यह तालिका निर्माण स्क्रिप्ट के समान है। तालिका परिवर्तन अनुरोध का सामान्य दृश्य:

ALTER TABLE table
team 1,
team 2,
Team N

आदेश बहुत अलग हैं, लेकिन तीन मुख्य समूहों को अलग किया जा सकता है:

  • ADD- तालिका में कुछ जोड़ता है
  • MODIFY- तालिका में कुछ बदलता है
  • DROP- तालिका में कुछ हटा देता है

और जब मैं कुछ कहता हूं, यह डेटा के बारे में नहीं है, बल्कि टेबल की संरचना के बारे में है।

उदाहरण के लिए, आप तालिका में एक नया कॉलम जोड़ने का निर्णय लेते हैं, तो आपको निम्न क्वेरी निष्पादित करने की आवश्यकता होती है:

ALTER TABLE table
	ADD COLUMN Name type

आइए एक क्वेरी लिखें जो हमारी कर्मचारी तालिका में एक ईमेल कॉलम जोड़ेगी :

ALTER TABLE employee
	ADD COLUMN email  VARCHAR(10)

अब ईमेल स्ट्रिंग की लंबाई को 10 से 100 में बदलें: इसके लिए हमें एक नई स्क्रिप्ट की आवश्यकता है:

ALTER TABLE employee
	MODIFY COLUMN email VARCHAR(100)

यदि आप किसी कॉलम की कुछ विशेषताओं को बदलना चाहते हैं, लेकिन उसके प्रकार को नहीं, तो आपको कमांड की ALTER COLUM आवश्यकता है । आइए डिफ़ॉल्ट ईमेल मान सेट करें:

ALTER TABLE employee
	ALTER COLUMN email VARCHAR(100)  DEFAULT 'test@test.com'

और अंत में, यदि आपको इसकी आवश्यकता नहीं है तो कॉलम को हटाया जा सकता है:

ALTER TABLE employee
	DROP COLUMN email 

6.3 प्राथमिक कुंजी जोड़ना और हटाना

और कुछ और उपयोगी उदाहरण।

मान लीजिए कि हम आईडी कॉलम को प्राथमिक कुंजी घोषित करना भूल गए। आप इसे हमेशा अलग से कर सकते हैं ALTER TABLE:

ALTER TABLE employee
	ADD PRIMARY KEY (email);

इसे हटाना और भी आसान है:

ALTER TABLE employee
	DELETE PRIMARY KEY;