Junior
როგორ შევცვალოთ რელაციური მონაცემთა ბაზის ცხრილის სტრუქტურა?
sobes.tech AI
პასუხი AI-სგან
რელაციური ბაზის ცხრილის სტრუქტურას ცვლილებები ხორციელდება SQL ბრძანებით ALTER TABLE.
ძირითადი მოქმედებები:
- სვეტის დამატება
- სვეტის წაშლა
- სვეტის მონაცემთა ტიპის შეცვლა
- შეზღუდვების დამატება/წაშლა (PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT NULL, CHECK, DEFAULT)
- ცხრილის სახელის შეცვლა
- სვეტის სახელის შეცვლა
ALTER TABLE ბრძანებების მაგალითები:
-- სვეტის დამატება 'users' ცხრილში, სახელად 'email' და ტიპით VARCHAR(255), NOT NULL შეზღუდვით
ALTER TABLE users
ADD COLUMN email VARCHAR(255) NOT NULL;
-- სვეტის წაშლა 'users' ცხრილიდან, სახელად 'phone'
ALTER TABLE users
DROP COLUMN phone;
-- სვეტის მონაცემთა ტიპის შეცვლა 'users' ცხრილში, სახელად 'age', ტიპი INTEGER
ALTER TABLE users
ALTER COLUMN age TYPE INTEGER;
-- უნიკალური შეზღუდვის დამატება 'users' ცხრილში, სვეტზე 'username'
ALTER TABLE users
ADD CONSTRAINT unique_username UNIQUE (username);
-- საგარეო კავშირის 'fk_user_group' წაშლა 'user_groups' ცხრილიდან
ALTER TABLE user_groups
DROP CONSTRAINT fk_user_group;
-- 'customers' ცხრილის სახელის შეცვლა 'clients'-ად
ALTER TABLE customers
RENAME TO clients;
-- სვეტის სახელის შეცვლა 'first_name'-დან 'given_name'-ად 'users' ცხრილში (სინტაქსი შეიძლება განსხვავდებოდეს)
ALTER TABLE users
RENAME COLUMN first_name TO given_name;
მნიშვნელოვანი შენიშვნები:
- მონაცემების არსებობა: მონაცემთა ტიპის შეცვლა ან სვეტის წაშლა შეიძლება გამოიწვიოს მონაცემების დაკარგვა ან არასწორობა.
- დამოკიდებულებები: სვეტის წაშლა ან შეზღუდვის შეცვლა შეიძლება დაარღვიოს დაკავშირებული ცხრილების მუშაობა (მაგალითად, საგარეო კავშირების გამო).
- შესრულების ეფექტურობა: რთული
ALTER TABLEოპერაციები დიდ ცხრილებზე შეიძლება იყოს რესურსმომგებიანი და დროით შეზღუდული.
ასეთ ცვლილებებს რეკომენდირებულია განხორციელება ტესტირების გარემოში და მონაცემთა სარეზერვო ასლების შექმნა.