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 tabel
  • DROP- ș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;