Junior
Чӣ гуна сохтори ҷадвалро дар пойгоҳи додаҳои алоқаманд тағир додан мумкин аст?
sobes.tech AI
Ҷавоб аз AI
Ташкилоти ҷадвали дар базаи додаҳои муоширак бо истифода аз фармонҳои SQL ALTER TABLE тағйир дода мешавад.
Амалҳои асосӣ:
- Илова кардани сутун
- Баъдгирии сутун
- Тасҳеҳ кардани навъи маълумоти сутун
- Илова/боздошти маҳдудиятҳо (PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT NULL, CHECK, DEFAULT)
- Нав кардани номи ҷадвал
- Нав кардани номи сутун
Масаланҳои фармонҳои ALTER TABLE:
-- Илова кардани сутуни 'email' аз навъи VARCHAR(255) бо маҳдудияти NOT NULL ба ҷадвали 'users'
ALTER TABLE users
ADD COLUMN email VARCHAR(255) NOT NULL;
-- Баъдгирии сутуни 'phone' аз ҷадвали 'users'
ALTER TABLE users
DROP COLUMN phone;
-- Тасҳеҳ кардани навъи маълумоти сутуни 'age' дар ҷадвали 'users' ба INTEGER
ALTER TABLE users
ALTER COLUMN age TYPE INTEGER;
-- Илова кардани маҳдудияти UNIQUE ба сутуни 'username' дар ҷадвали 'users'
ALTER TABLE users
ADD CONSTRAINT unique_username UNIQUE (username);
-- Боздошти маҳдудияти Foreign Key бо номи '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дар ҷадвалҳои калон метавонанд захираҳоро талаб кунанд ва дар вақти иҷро баста шаванд.
Тавсия дода мешавад, ки чунин тағйиротҳоро дар муҳити тестӣ анҷом диҳед пеш аз татбиқ дар истеҳсолот ва нусхаи ҳифзии маълумотҳоро созед.