6.1 Ændring af databasens struktur

Og endelig er den lækreste del af arbejdet med databaser at ændre databasen. Hvis du tror, ​​at dette er noget meget simpelt, så er her en anekdote til dig om emnet:


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!

Situationen er nøjagtig den samme med databaser. Vil du udtage en del af dataene i den separate tabel? Okay, du skal bruge:

  • oprette en ny tabel
  • kopier dataene ind i denne nye tabel
  • fjerne kolonner fra gammel tabel
  • ændre alle SQL-forespørgsler, der refererede til den gamle tabel
  • tilføje SQL-forespørgsler, der vil få adgang til den nye tabel
  • ændre Java-koden, der fungerede med tabeller på den gamle måde
  • ændre backup- og gendannelsesscripts, da tabelstrukturerne nu ikke stemmer overens
  • hvis du har testdata til udviklere, skal du også ændre dem

Selvom det i virkeligheden er endnu værre:

Ny databasestruktur:

  • først ændrer du tabelstrukturen på udviklerens maskine
  • så er du overbevist om, at sådan en struktur er virkelig bedre
  • godkende den nye databasestruktur

Migration scripts:

  • du skriver scripts, der vil ændre tabeldata osv. på en rigtig database
  • kør disse scripts på en maskine med den gamle databasestruktur og se, hvordan den ændrer sig
  • verificere alle de kritiske steder i den nye base

Opdatering på udsalg

  • stoppe produktionsdatabasen
  • lave en fuld backup
  • udførelse af scripts
  • da der normalt er mange på markedet, kan disse scripts virke i timevis

Du starter proppen og håber, at du ikke behøver at rulle alt tilbage.

6.2 ÆNDRINGSTABEL erklæring

Til gengæld er selve scriptet, som ændrer tabelstrukturen, meget simpelt. På nogle måder ligner det et tabeloprettelsesscript. Generel visning af en anmodning om tabelændring:

ALTER TABLE table
team 1,
team 2,
Team N

Kommandoer er meget forskellige, men der kan skelnes mellem tre hovedgrupper:

  • ADD- tilføjer noget til bordet
  • MODIFY- ændrer noget i tabellen
  • DROP- sletter noget i tabellen

Og når jeg siger noget, handler det ikke om data, men om strukturen i tabellen.

For eksempel beslutter du dig for at tilføje en ny kolonne til tabellen, så skal du udføre følgende forespørgsel:

ALTER TABLE table
	ADD COLUMN Name type

Lad os skrive en forespørgsel, der tilføjer en e-mail- kolonne til vores medarbejdertabel :

ALTER TABLE employee
	ADD COLUMN email  VARCHAR(10)

Lad os nu ændre længden af ​​e-mail-strengen fra 10 til 100: til dette har vi brug for et nyt script:

ALTER TABLE employee
	MODIFY COLUMN email VARCHAR(100)

Hvis du vil ændre nogle attributter for en kolonne, men ikke dens type, skal du bruge kommandoen ALTER COLUM . Lad os indstille standardværdien for e-mail :

ALTER TABLE employee
	ALTER COLUMN email VARCHAR(100)  DEFAULT 'test@test.com'

Og endelig kan kolonnen fjernes, hvis du ikke har brug for den:

ALTER TABLE employee
	DROP COLUMN email 

6.3 Tilføjelse og fjernelse af en primær nøgle

Og nogle flere nyttige eksempler.

Lad os sige, at vi har glemt at erklære id- kolonnen som den primære nøgle. Du kan altid gøre det separat via ALTER TABLE:

ALTER TABLE employee
	ADD PRIMARY KEY (email);

Det er endnu nemmere at fjerne det:

ALTER TABLE employee
	DELETE PRIMARY KEY;