6.1 Modifica della struttura del database
E infine, la parte più piacevole del lavoro con i database è la modifica del database. Se pensi che questo sia qualcosa di molto semplice, allora ecco un aneddoto per te sull'argomento:
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!
La situazione è esattamente la stessa con i database. Vuoi eliminare una parte dei dati nella tabella separata? Ok, hai bisogno di:
- creare una nuova tabella
- copiare i dati in questa nuova tabella
- rimuovere le colonne dalla vecchia tabella
- modificare tutte le query SQL che facevano riferimento alla vecchia tabella
- aggiungere query SQL che accederanno alla nuova tabella
- cambia il codice Java che funzionava con le tabelle alla vecchia maniera
- modificare gli script di backup e ripristino, poiché ora le strutture delle tabelle non corrispondono
- se disponi di dati di test per gli sviluppatori, devi modificarli anche tu
Anche se in realtà è anche peggio:
Nuova struttura del database:
- per prima cosa cambi la struttura della tabella sulla macchina dello sviluppatore
- allora sei convinto che una tale struttura sia davvero migliore
- approvare la nuova struttura del database
Script di migrazione:
- scrivi script che cambieranno i dati della tabella, ecc. Su un vero database
- eseguire questi script su una macchina con la vecchia struttura del database e vedere come cambia
- verificare tutti i punti critici della nuova base
Aggiornamento in vendita
- arrestare il database di produzione
- fare un backup completo
- esecuzione di script
- poiché di solito ce ne sono molti sul mercato, questi script possono funzionare per ore
Lanci il prod e speri di non dover ripristinare tutto.
6.2 Istruzione ALTER TABLE
Lo script stesso, invece, che modifica la struttura della tabella, è molto semplice. In un certo senso, è simile a uno script per la creazione di tabelle. Vista generale di una richiesta di modifica della tabella:
ALTER TABLE table
team 1,
team 2,
Team N
I comandi sono molto diversi, ma si possono distinguere tre gruppi principali:
ADD
- aggiunge qualcosa al tavoloMODIFY
- cambia qualcosa nella tabellaDROP
- cancella qualcosa nella tabella
E quando dico qualcosa, non riguarda i dati, ma la struttura della tabella.
Ad esempio, decidi di aggiungere una nuova colonna alla tabella, quindi devi eseguire la seguente query:
ALTER TABLE table
ADD COLUMN Name type
Scriviamo una query che aggiungerà una colonna email alla nostra tabella dei dipendenti :
ALTER TABLE employee
ADD COLUMN email VARCHAR(10)
Ora cambiamo la lunghezza della stringa email da 10 a 100: per questo abbiamo bisogno di un nuovo script:
ALTER TABLE employee
MODIFY COLUMN email VARCHAR(100)
Se vuoi cambiare alcuni attributi di una colonna, ma non il suo tipo, allora hai bisogno del comando ALTER COLUM
. Impostiamo il valore email predefinito :
ALTER TABLE employee
ALTER COLUMN email VARCHAR(100) DEFAULT 'test@test.com'
E infine, la colonna può essere rimossa se non ne hai bisogno:
ALTER TABLE employee
DROP COLUMN email
6.3 Aggiunta e rimozione di una chiave primaria
E alcuni esempi più utili.
Supponiamo di aver dimenticato di dichiarare la colonna id come chiave primaria. Puoi sempre farlo separatamente tramite ALTER TABLE
:
ALTER TABLE employee
ADD PRIMARY KEY (email);
Rimuoverlo è ancora più semplice:
ALTER TABLE employee
DELETE PRIMARY KEY;
GO TO FULL VERSION