6.1 მონაცემთა ბაზის სტრუქტურის ცვლილება
და ბოლოს, ყველაზე საინტერესო ნაწილი მონაცემთა ბაზებთან მუშაობის — მონაცემთა ბაზის ცვლილება. თუ ფიქრობ, რომ ეს რაღაც ძალიან მარტივია, მაშინ აი ანეკდოტი თემაზე:
მექანიკოსი, რომელიც ხელს ადვილებს, აძლევს კლიენტს მანქანას და საუბარში ეწევა:
- და თქვენ რა ხართ?
- კარდიოქირურგი, გულის ოპერაციებს ვაკეთებ.
- და კარგად გაახლებენ?
- 20,000$ ოპერაციაში.
- ვაუ... და ჩვენ, ფაქტობრივად, ერთსა და იგივეს ვაკეთებთ, ძრავებს ვმუშაობთ, და მე მხოლოდ 300$ მიხდიან...
- გინდა როგორც მე ვიშოვო?
- მინდა...
ქირურგი მანქანას ძრავს და მიმართავს მექანიკოსს:
- გადმუშავე!
მონაცემთა ბაზებთან სიტუაცია იმავესავითაა. გინდა მონაცემების ნაწილი სხვა ცხრილში გამოიტანო? კარგი, ამისთვის გჭირდება:
- ახალი ცხრილის შექმნა
- მონაცემების ახალი ცხრილში გადაწერა
- ძველი ცხრილიდან სვეტების წაშლა
- ყველა SQL-კითხვას შეცვლა, რომლებიც ძველ ცხრილს მოიხმობდა
- SQL-კითხვების დამატება, რომლებიც ახალ ცხრილზე მიმართავს
- Java-კოდის შეცვლა, რომლებიც ცხრილებთან ძველად მუშაობდა
- ბექაპისა და მონაცემების აღდგენის სცენარების შეცვლა, რადგან ახლა ცხრილების სტრუქტურები არ ემთხვევა
- თუ გაქვს ტესტური მონაცემები დეველოპერებისთვის, მათიც უნდა შეცვალო
თუმცა რეალობაში შეიძლება უარესი გიწევდეს:
ბაზის ახალი სტრუქტურა:
- თავდაპირველად, ცხრილების სტრუქტურის შეცვლა დეველოპერის მანქანაზე
- შემდეგ, დარწმუნდე, რომ ახალი სტრუქტურა ნამდვილად უკეთესია
- ბაზის ახალი სტრუქტურის დამტკიცება
მიგრაციის სკრიპტები:
- დაწერო სკრიპტები, რომლებიც ცხრილის მონაცემებს შეცვლის და ა.შ. რეალურ ბაზაზე
- ამ სკრიპტების გაშვება ძველი სტრუქტურის ბაზაზე და მისი ცვლილების ნახვა
- გაამოწმო ახალი ბაზის კრიტიკული ადგილები
პარასკევის განახლება
- პროექციის ბაზის გაჩერება
- სრული ბექაპის გაკეთება
- სკრიპტების გაშვება
- რადგან წარმოებაში ჩვეულებრივ ბევრი მონაცემია, სკრიპტებმა შესაძლოა საათობით იმუშაონ
განაახლებ წარმოებას და იმედი გქონდეს, რომ უკან ყველაფერი გაბრუნება არ დაგჭირდება.
6.2 ოპერატორი ALTER TABLE
მეორე მხრივ, სკრიპტი, რომელიც ცხრილების სტრუქტურას ცვლის, ძალიან მარტივია. იგი ტაბლიცების შექმნის სკრიპტს ჰგავს. ცხრილის ცვლილების საერთო შეკითხვა ასეთია:
ALTER TABLE ცხრილი
კომანდა 1,
კომანდა 2,
კომანდა N
კომანდები ძალიან განსხვავებულია, მაგრამ შეიძლება სამი ძირითადი ჯგუფის გამოყოფა:
ADD
— ერთ რაღაცას ცხრილში დაამატებსMODIFY
— ერთ რაღაცას ცხრილში შეცვლისDROP
— ერთ რაღაცას ცხრილში წაშლის
და როცა ვამბობ რაღაცას, ვგულისხმობ არა მონაცემებს, არამედ ცხრილის სტრუქტურას.
მაგალითად, თუ გადაწყვიტე ცხრილში ახალი სვეტი დაამატო, მაშინ ასეთი შეკითხვა უნდა მიიღო:
ALTER TABLE ცხრილი
ADD COLUMN სახელი ტიპი
დავწეროთ შეკითხვა, რომელიც ჩვენს ცხრილში employee დაამატებს სვეტს email:
ALTER TABLE employee
ADD COLUMN email VARCHAR(10)
ახლა email სვეტის სიგრძე 10-დან 100-მდე შეიცვალე: ამისთვის ახალი სკრიპტი გვჭირდება:
ALTER TABLE employee
MODIFY COLUMN email VARCHAR(100)
თუ გინდა შეცვალო სვეტის ზოგიერთი ატრიბუტი, მაგრამ არა მისი ტიპი, მაშინ საჭიროა კომანდა ALTER COLUMN
. დავანგარიშოთ email სვეტის სტანდარტული მნიშვნელობა:
ALTER TABLE employee
ALTER COLUMN email VARCHAR(100) DEFAULT 'test@test.com'
და ბოლოს, სვეტი შეიძლება წავშალო, თუ ის აღარ არის საჭირო:
ALTER TABLE employee
DROP COLUMN email
6.3 მთავარი გასაღების დამატება და წაშლა
და კიდევ რამდენიმე სასარგებლო მაგალითი.
ჭირბე, რომ დაგვავიწყდა სვეტის id მთავარი გასაღებად უნდა გამოვაცხადოთ. ყოველთვის შეიძლება ეს ცალკე გააკეთო ALTER TABLE
:
ALTER TABLE employee
ADD PRIMARY KEY (id);
წაშლა კიდევ უფრო მარტივია:
ALTER TABLE employee
DELETE PRIMARY KEY;
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ