6.1 Az adatbázis szerkezetének megváltoztatása

És végül, az adatbázisokkal való munka legfinomabb része az adatbázis megváltoztatása. Ha úgy gondolja, hogy ez valami nagyon egyszerű, akkor itt van egy anekdota a témában:


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!

Pontosan ugyanez a helyzet az adatbázisokkal. Ki akarja venni a külön táblázatban szereplő adatok egy részét? Oké, szüksége van:

  • hozzon létre egy új táblázatot
  • másolja az adatokat ebbe az új táblába
  • távolítsa el az oszlopokat a régi táblázatból
  • módosítsa az összes SQL-lekérdezést, amely a régi táblára hivatkozott
  • adjon hozzá SQL-lekérdezéseket, amelyek hozzáférnek az új táblához
  • módosítsa a Java kódot, amely a régi módon működött a táblázatokkal
  • módosítsa a biztonsági mentési és visszaállítási szkripteket, mivel most a táblaszerkezetek nem egyeznek
  • ha vannak tesztadatok a fejlesztők számára, akkor azokat is módosítani kell

Bár a valóságban ez még rosszabb:

Új adatbázis-struktúra:

  • először módosítsa a tábla szerkezetét a fejlesztő gépén
  • akkor meg vagy győződve arról, hogy egy ilyen szerkezet valóban jobb
  • hagyja jóvá az új adatbázis-struktúrát

Áttelepítési szkriptek:

  • olyan szkripteket írsz, amelyek megváltoztatják a tábla adatait stb
  • futtassa ezeket a szkripteket egy gépen a régi adatbázis-struktúrával, és nézze meg, hogyan változik
  • ellenőrizze az új bázis összes kritikus helyét

Frissítés eladó

  • állítsa le a termelési adatbázist
  • készítsen teljes biztonsági másolatot
  • szkriptek végrehajtása
  • mivel általában sok van a piacon, ezek a szkriptek órákig működhetnek

Elindítja a prod-ot, és reméli, hogy nem kell mindent visszaforgatnia.

6.2 ALTER TABLE utasítás

Másrészt maga a szkript, amely megváltoztatja a táblázat szerkezetét, nagyon egyszerű. Bizonyos szempontból hasonlít egy táblázatkészítő szkripthez. Táblázatmódosítási kérelem általános nézete:

ALTER TABLE table
team 1,
team 2,
Team N

A parancsok nagyon különbözőek, de három fő csoportot lehet megkülönböztetni:

  • ADD- tesz hozzá valamit az asztalhoz
  • MODIFY- megváltoztat valamit a táblázatban
  • DROP- töröl valamit a táblázatból

És ha mondok valamit, az nem az adatokról szól, hanem a táblázat szerkezetéről.

Például úgy dönt, hogy egy új oszlopot ad hozzá a táblához, majd végre kell hajtania a következő lekérdezést:

ALTER TABLE table
	ADD COLUMN Name type

Írjunk egy lekérdezést, amely hozzáad egy e-mail oszlopot az alkalmazottak táblázatához :

ALTER TABLE employee
	ADD COLUMN email  VARCHAR(10)

Most változtassuk meg az e-mail karakterlánc hosszát 10-ről 100-ra: ehhez új szkriptre van szükségünk:

ALTER TABLE employee
	MODIFY COLUMN email VARCHAR(100)

Ha meg szeretné változtatni egy oszlop egyes attribútumait, de nem a típusát, akkor a parancsra ALTER COLUM van szüksége . Állítsuk be az alapértelmezett e-mail értéket:

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

És végül az oszlop eltávolítható, ha nincs rá szüksége:

ALTER TABLE employee
	DROP COLUMN email 

6.3 Elsődleges kulcs hozzáadása és eltávolítása

És még néhány hasznos példa.

Tegyük fel, hogy elfelejtettük az id oszlopot elsődleges kulcsként deklarálni. Ezt külön-külön mindig megteheti ALTER TABLE:

ALTER TABLE employee
	ADD PRIMARY KEY (email);

Az eltávolítása még egyszerűbb:

ALTER TABLE employee
	DELETE PRIMARY KEY;