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łuMODIFY
- zmienia coś w tabeliDROP
- 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;
GO TO FULL VERSION