IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Esegui il codice di esempio così com'è e prendi nota dell'errore.
  • Ora usa SUBSTRING() per ridurre firstname a 16 caratteri, così il suo tipo può essere modificato in varchar(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)
Modifica ed esegui il codice