Questo articolo spiega come è possibile aggiungere una nuova colonna a una tabella Redshift esistente senza interrompere nient'altro nella struttura del database. Supponiamo che prima di passare attraverso questo articolo, hai conoscenza della configurazione di un cluster di spostamento verso il rosso.
Breve riepilogo dei comandi SQL
Esaminiamo brevemente i cinque tipi di comandi SQL di base per scoprire quale tipo di comando dovremo aggiungere una nuova colonna a una tabella.
Dalla discussione precedente, è chiaro che avremo bisogno di un comando DDL Altera Per aggiungere una nuova colonna a una tabella esistente.
Cambiare il proprietario del tavolo
Come probabilmente sai, ogni database ha i suoi utenti e una diversa serie di autorizzazioni. Quindi, prima di provare a modificare una tabella, l'utente deve possedere quella tabella nel database. Altrimenti, non ottieni il permesso di cambiare nulla. In tali casi, è necessario consentire all'utente di eseguire operazioni specifiche sulla tabella modificando il proprietario della tabella. È possibile scegliere un utente esistente o creare un nuovo utente nel database e quindi eseguire il comando seguente:
alter tabella
proprietario a < new user>In questo modo, è possibile modificare il proprietario della tabella usando il comando alter. Ora vedremo come aggiungere una nuova colonna alla nostra tabella di database esistente.
Aggiunta di una colonna nella tabella Redshift
Supponiamo di gestire una piccola società di tecnologia informatica con diversi dipartimenti e di aver sviluppato tabelle di database separate per ciascun reparto. Tutti i dati dei dipendenti per il team HR sono archiviati nella tabella denominata hr_team, con tre colonne denominate serial_number, nome e date_of_joining. I dettagli della tabella possono essere visualizzati nella seguente schermata:
Va tutto bene. Ma nel tempo, ti sei appena reso conto di facilitare ulteriormente la tua vita aggiungendo gli stipendi dei dipendenti nel database che in precedenza hai gestito utilizzando semplici fogli di calcolo. Quindi vuoi popolare un'altra colonna in ogni tabella dipartimentale denominata stipendio.
L'attività può essere semplicemente eseguita utilizzando il seguente comando della tabella alter:
alter tabella
aggiungereQuindi, è necessario che i seguenti attributi eseguiscano la query precedente nel cluster Redshift:
- Nome della tabella: Nome della tabella in cui si desidera aggiungere una nuova colonna
- Nome colonna: Nome della nuova colonna che stai aggiungendo
- Tipo di dati: Definire il tipo di dati della nuova colonna
Ora aggiungeremo la colonna denominata stipendio con il tipo di dati int al nostro tavolo esistente di hr_team.
Quindi, la query precedente ha aggiunto una nuova colonna alla tabella Redshift esistente. Il tipo di dati per questa colonna è un numero intero e il valore predefinito è impostato su NULL. Ora puoi aggiungere i dati desiderati effettivi in questa colonna.
Aggiunta di colonna con lunghezza della stringa specificata
Prendiamo un altro caso in cui è possibile definire anche la lunghezza della stringa dopo il tipo di dati per la nuova colonna che aggiungeremo. La sintassi sarà la stessa, tranne per il fatto che c'è solo l'aggiunta di un attributo.
alter tabella
aggiungere<(Length)> Ad esempio, vuoi chiamare ogni membro del team con un breve soprannome invece del loro nome completo e vuoi che i soprannomi siano composti da un massimo di cinque caratteri.
Per questo, dovrai impedire alle persone di andare oltre una certa lunghezza per i soprannomi.
Quindi viene aggiunta una nuova colonna e abbiamo impostato un limite su Varchar in modo che non possa richiedere più di cinque caratteri.
Ora, se qualcuno cerca di aggiungere il suo soprannome più a lungo di quanto ci aspettiamo, il database non consentirà tale operazione e segnalerà un errore.
Ma, se inseriamo tutti i soprannomi con cinque o meno caratteri, l'operazione avrà successo.
Usando la query precedente, è possibile aggiungere una nuova colonna e mettere un limite alla lunghezza della stringa nella tabella Redshift.
Aggiunta di una colonna a chiave straniera
Le chiavi straniere vengono utilizzate per fare riferimento ai dati da una colonna all'altra. Prendi un caso in cui hai persone nella tua organizzazione che lavorano in più di un team e vuoi tenere traccia della gerarchia della tua organizzazione. Facciamo web_team E dev_team Condividere le stesse persone e vogliamo fare riferimento a chiavi straniere. IL dev_team ha semplicemente due colonne che sono ID Dipendente E nome.
Ora vogliamo creare una colonna denominata ID Dipendente nel web_team tavolo. L'aggiunta di una nuova colonna è la stessa discussa sopra.
Successivamente, imposteremo la colonna appena aggiunta come chiave esterna facendola riferingla alla colonna ID Dipendente presente nel dev_team tavolo. È necessario il seguente comando per impostare la chiave esterna:
Alter Table Organization.web_team
Aggiungi una chiave straniera
() Riferimenti ( ); In questo modo, puoi aggiungere una nuova colonna e impostarla come chiave esterna nel tuo database.
Conclusione
Abbiamo visto come apportare modifiche nelle nostre tabelle di database come l'aggiunta di una colonna, la rimozione di una colonna e la ridenominazione di una colonna. Queste azioni sulla tabella Redshift possono essere eseguite semplicemente usando comandi SQL. Puoi cambiare la tua chiave primaria o impostare un'altra chiave estera se lo desideri.
- « Come ottenere una dimensione del tavolo da spostamento verso il rosso
- Filtro righe nel frame dati »