6.1 Modificarea structurii bazei de date
Și, în sfârșit, cea mai delicioasă parte a lucrului cu bazele de date este schimbarea bazei de date. Dacă crezi că acesta este ceva foarte simplu, atunci iată o anecdotă pentru tine pe acest subiect:
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!
Situația este exact aceeași cu bazele de date. Doriți să scoateți o parte din datele din tabelul separat? Bine, ai nevoie de:
- creați un nou tabel
- copiați datele în acest nou tabel
- eliminați coloanele din tabelul vechi
- modificați toate interogările SQL care se refereau la tabelul vechi
- adăugați interogări SQL care vor accesa noul tabel
- modificați codul Java care funcționa cu tabelele în modul vechi
- modificați scripturile de backup și restaurare, deoarece acum structurile tabelului nu se potrivesc
- dacă aveți date de testare pentru dezvoltatori, trebuie să le schimbați și pe acestea
Deși în realitate este și mai rău:
Noua structura a bazei de date:
- mai întâi modificați structura tabelului pe mașina dezvoltatorului
- atunci ești convins că o astfel de structură este cu adevărat mai bună
- aproba noua structură a bazei de date
Scripturi de migrare:
- scrieți scripturi care vor schimba datele din tabel etc. pe o bază de date reală
- rulați aceste scripturi pe o mașină cu vechea structură a bazei de date și vedeți cum se schimbă
- verificați toate locurile critice ale noii baze
Actualizare la vânzare
- opriți baza de date de producție
- faceți o copie de rezervă completă
- executând scripturi
- deoarece sunt de obicei multe pe piață, aceste scripturi pot funcționa ore întregi
Lansați prod și sperați că nu va trebui să faceți totul înapoi.
6.2 Instrucțiunea ALTER TABLE
Pe de altă parte, scriptul în sine, care schimbă structura tabelului, este foarte simplu. În unele privințe, este similar cu un script de creare a unui tabel. Vedere generală a unei cereri de modificare a tabelului:
ALTER TABLE table
team 1,
team 2,
Team N
Comenzile sunt foarte diferite, dar se pot distinge trei grupuri principale:
ADD
- adaugă ceva la masăMODIFY
- schimbă ceva în tabelDROP
- șterge ceva din tabel
Și când spun ceva, nu este vorba de date, ci de structura tabelului.
De exemplu, decideți să adăugați o nouă coloană la tabel, apoi trebuie să executați următoarea interogare:
ALTER TABLE table
ADD COLUMN Name type
Să scriem o interogare care va adăuga o coloană de e-mail la tabelul de angajați :
ALTER TABLE employee
ADD COLUMN email VARCHAR(10)
Acum să modificăm lungimea șirului de e-mail de la 10 la 100: pentru asta avem nevoie de un nou script:
ALTER TABLE employee
MODIFY COLUMN email VARCHAR(100)
Dacă doriți să modificați unele atribute ale unei coloane, dar nu și tipul acesteia, atunci aveți nevoie de comanda ALTER COLUM
. Să setăm valoarea implicită de e-mail :
ALTER TABLE employee
ALTER COLUMN email VARCHAR(100) DEFAULT 'test@test.com'
Și, în sfârșit, coloana poate fi eliminată dacă nu aveți nevoie de ea:
ALTER TABLE employee
DROP COLUMN email
6.3 Adăugarea și eliminarea unei chei primare
Și câteva exemple utile.
Să presupunem că am uitat să declarăm coloana id ca cheie primară. O puteți face oricând separat prin ALTER TABLE
:
ALTER TABLE employee
ADD PRIMARY KEY (email);
Eliminarea acestuia este și mai ușoară:
ALTER TABLE employee
DELETE PRIMARY KEY;
GO TO FULL VERSION