Il gestore di database SQLite racchiude un ampio set di funzionalità in una piccola libreria software - meno di 350KB . Raggiunge questa efficienza in parte attraverso compromessi nei suoi tipi di dati , per esempio, sostiene integer , carattere e campi BLOB ma non ENUM . È possibile aggirare la limitazione di ENUM e raggiungere gran parte della stessa funzionalità , sfruttando altre funzionalità di SQLite e attraverso un'attenta programmazione delle applicazioni . ENUM Tipo di dati
Quando si crea un enumerato , o ENUM , tipo di dati , è possibile definire un elenco di valori di dati approvati. Ad esempio, una tabella di dati di valutazioni di film comprende un certo numero di stelle , da zero a quattro - nessun film ottiene un bambino di dieci stelle , non importa quanto è buono , e nessuno riceve una valutazione negativa , non importa quanto è fatto male . È possibile utilizzare un enum per il campo Numero di stelle del tavolo , dando i valori dei numeri interi da zero a quattro. Alcuni linguaggi di programmazione , tra cui Java e gestori di database SQL , quali MySQL e Oracle includono il tipo di dati ENUM , anche se non è una parte dello standard SQL 92 .
SQL Campo Vincoli
< br >
Sebbene SQLite non offre un tipo di dati ENUM , è possibile aggiungere una proprietà chiamata un vincolo di controllo a un campo, costringendo ad accettare valori da un elenco ristretto . Ad esempio, diciamo che si imposta un campo di stato e desidera limitare i suoi valori al set di due caratteri statunitensi abbreviazioni Stato . Quando si crea la tabella in SQLite , si imposta il campo Stato come un tipo CHAR e poi aggiunge un vincolo di controllo che elenca le 50 sigle statali . SQLite supporta controllare vincoli a partire dalla versione 3.3.0 , prima di quella versione , SQLite analizzato i vincoli , ma non li ha fatto rispettare . Se si aggiunge un vincolo a una tabella che contiene già dei dati , SQLite non controlla i valori esistenti . Se un utente tenta di aggiungere i valori alla tabella che non sono inclusi nei vincoli , SQLite genera una condizione di errore , bloccando l'operazione .