Converti i tipi USING una funzione
Se non vuoi riservare troppo spazio per una certa colonna varchar, puoi troncare i valori prima di convertirne il tipo.
Per questo, puoi usare la seguente sintassi:
ALTER TABLE table_name
ALTER COLUMN column_name
TYPE varchar(x)
USING SUBSTRING(column_name FROM 1 FOR x)
Interpretala così: siccome vuoi riservare solo x caratteri per column_name, devi mantenere una SUBSTRING di ogni valore, cioè i primi x caratteri, e scartare il resto. In questo modo, i valori rispetteranno il vincolo varchar(x).
Questo esercizio fa parte del corso
Introduzione ai database relazionali in SQL
Istruzioni dell'esercizio
- Esegui il codice di esempio così com'è e prendi nota dell'errore.
- Ora usa
SUBSTRING()per ridurrefirstnamea 16 caratteri, così il suo tipo può essere modificato invarchar(16).
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
-- Convert the values in firstname to a max. of 16 characters
ALTER TABLE professors
ALTER COLUMN firstname
TYPE varchar(16)