Sobes.tech
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 ოპერაციები დიდ ცხრილებზე შეიძლება იყოს რესურსმომგებიანი და დროით შეზღუდული.

ასეთ ცვლილებებს რეკომენდირებულია განხორციელება ტესტირების გარემოში და მონაცემთა სარეზერვო ასლების შექმნა.