6.1 Zmiana struktury bazy danych

I wreszcie, najsmaczniejszą częścią pracy z bazami danych jest zmiana bazy danych. Jeśli uważasz, że jest to coś bardzo prostego, oto anegdota na ten temat:


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!

Dokładnie tak samo jest z bazami danych. Chcesz usunąć część danych z osobnej tabeli? Ok, potrzebujesz:

  • utworzyć nową tabelę
  • skopiuj dane do tej nowej tabeli
  • usuń kolumny ze starej tabeli
  • zmienić wszystkie zapytania SQL, które odnosiły się do starej tabeli
  • dodaj zapytania SQL, które będą miały dostęp do nowej tabeli
  • zmienić kod Java, który działał z tabelami w stary sposób
  • zmień skrypty tworzenia kopii zapasowych i przywracania, ponieważ teraz struktury tabel nie pasują
  • jeśli masz dane testowe dla programistów, musisz je również zmienić

Chociaż w rzeczywistości jest jeszcze gorzej:

Nowa struktura bazy danych:

  • najpierw zmieniasz strukturę tabeli na komputerze programisty
  • wtedy jesteś przekonany, że taka struktura jest naprawdę lepsza
  • zatwierdzić nową strukturę bazy danych

Skrypty migracji:

  • piszesz skrypty, które zmienią dane tabeli itp. na prawdziwej bazie danych
  • uruchom te skrypty na komputerze ze starą strukturą bazy danych i zobacz, jak się zmienia
  • zweryfikować wszystkie krytyczne miejsca nowej bazy

Aktualizacja w sprzedaży

  • zatrzymać produkcyjną bazę danych
  • wykonać pełną kopię zapasową
  • wykonywanie skryptów
  • ponieważ na rynku jest ich zwykle dużo, te skrypty mogą działać godzinami

Uruchamiasz program i masz nadzieję, że nie będziesz musiał wszystkiego wycofywać.

6.2 Instrukcja ALTER TABLE

Z drugiej strony sam skrypt zmieniający strukturę tabeli jest bardzo prosty. Pod pewnymi względami jest podobny do skryptu tworzenia tabeli. Ogólny widok żądania zmiany tabeli:

ALTER TABLE table
team 1,
team 2,
Team N

Polecenia są bardzo różne, ale można wyróżnić trzy główne grupy:

  • ADD- dodaje coś do stołu
  • MODIFY- zmienia coś w tabeli
  • DROP- usuwa coś w tabeli

A kiedy coś mówię, to nie chodzi o dane, ale o strukturę tabeli.

Na przykład zdecydujesz się dodać nową kolumnę do tabeli, a następnie musisz wykonać następujące zapytanie:

ALTER TABLE table
	ADD COLUMN Name type

Napiszmy zapytanie, które doda kolumnę e-mail do naszej tabeli pracowników :

ALTER TABLE employee
	ADD COLUMN email  VARCHAR(10)

Teraz zmieńmy długość ciągu wiadomości e-mail z 10 na 100: do tego potrzebujemy nowego skryptu:

ALTER TABLE employee
	MODIFY COLUMN email VARCHAR(100)

Jeśli chcesz zmienić niektóre atrybuty kolumny, ale nie jej typ, potrzebujesz polecenia ALTER COLUM . Ustawmy domyślną wartość adresu e-mail :

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

I wreszcie kolumnę można usunąć, jeśli jej nie potrzebujesz:

ALTER TABLE employee
	DROP COLUMN email 

6.3 Dodawanie i usuwanie klucza podstawowego

I jeszcze kilka przydatnych przykładów.

Powiedzmy, że zapomnieliśmy zadeklarować kolumnę id jako klucz podstawowy. Zawsze możesz to zrobić osobno przez ALTER TABLE:

ALTER TABLE employee
	ADD PRIMARY KEY (email);

Usunięcie jest jeszcze łatwiejsze:

ALTER TABLE employee
	DELETE PRIMARY KEY;