6.1 Ändra databasens struktur

Och slutligen, den läckraste delen av att arbeta med databaser är att ändra databasen. Om du tror att detta är något väldigt enkelt, så här är en anekdot för dig om ämnet:


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 är exakt densamma med databaser. Vill du ta ut en del av datan i den separata tabellen? Okej, du behöver:

  • skapa en ny tabell
  • kopiera data till denna nya tabell
  • ta bort kolumner från den gamla tabellen
  • ändra alla SQL-frågor som hänvisade till den gamla tabellen
  • lägg till SQL-frågor som kommer åt den nya tabellen
  • ändra Java-koden som fungerade med tabeller på det gamla sättet
  • ändra skripten för säkerhetskopiering och återställning, eftersom tabellstrukturerna nu inte matchar
  • om du har testdata för utvecklare måste du ändra dem också

Även om det i verkligheten är ännu värre:

Ny databasstruktur:

  • först ändrar du tabellstrukturen på utvecklarens maskin
  • då är du övertygad om att en sådan struktur verkligen är bättre
  • godkänna den nya databasstrukturen

Migreringsskript:

  • du skriver skript som kommer att ändra tabelldata etc. på en riktig databas
  • kör dessa skript på en maskin med den gamla databasstrukturen och se hur den förändras
  • verifiera alla kritiska platser för den nya basen

Uppdatering på rea

  • stoppa produktionsdatabasen
  • göra en fullständig säkerhetskopia
  • exekvera skript
  • eftersom det vanligtvis finns en hel del på marknaden kan dessa skript fungera i timmar

Du lanserar prodden och hoppas att du inte behöver rulla tillbaka allt.

6.2 ALTER TABLE-sats

Å andra sidan är själva skriptet, som ändrar tabellstrukturen, väldigt enkelt. På vissa sätt liknar det ett skript för att skapa tabeller. Allmän vy av en begäran om tabelländring:

ALTER TABLE table
team 1,
team 2,
Team N

Kommandon är väldigt olika, men tre huvudgrupper kan särskiljas:

  • ADD- tillför något till bordet
  • MODIFY- ändrar något i tabellen
  • DROP- raderar något i tabellen

Och när jag säger något så handlar det inte om data, utan om tabellens struktur.

Till exempel bestämmer du dig för att lägga till en ny kolumn i tabellen, då måste du utföra följande fråga:

ALTER TABLE table
	ADD COLUMN Name type

Låt oss skriva en fråga som lägger till en e- postkolumn i vår personaltabell :

ALTER TABLE employee
	ADD COLUMN email  VARCHAR(10)

Låt oss nu ändra längden på e-poststrängen från 10 till 100: för detta behöver vi ett nytt skript:

ALTER TABLE employee
	MODIFY COLUMN email VARCHAR(100)

Om du vill ändra vissa attribut för en kolumn, men inte dess typ, behöver du kommandot ALTER COLUM . Låt oss ställa in standardvärdet för e-post :

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

Och slutligen kan kolumnen tas bort om du inte behöver den:

ALTER TABLE employee
	DROP COLUMN email 

6.3 Lägga till och ta bort en primärnyckel

Och några mer användbara exempel.

Låt oss säga att vi glömde att deklarera id- kolumnen som primärnyckel. Du kan alltid göra det separat via ALTER TABLE:

ALTER TABLE employee
	ADD PRIMARY KEY (email);

Att ta bort det är ännu enklare:

ALTER TABLE employee
	DELETE PRIMARY KEY;