May 9
Il gestore di database SQLite racchiude una vasta serie di funzionalità in una piccola libreria software - meno di 350KB. Raggiunge questa efficienza anche attraverso compromessi nei suoi tipi di dati; per esempio, sostiene integer, caratteri e campi BLOB ma non ENUM. È possibile aggirare la limitazione ENUM e raggiungere gran parte la stessa funzionalità sfruttando le altre caratteristiche di SQLite e attraverso un'attenta programmazione delle applicazioni.
Quando si crea un enumerato o ENUM, tipo di dati, si definisce un elenco di valori di dati approvati. Ad esempio, una tabella di dati di rating dei film comprende un certo numero di stelle, da zero a quattro - nessun film ottiene un dieci stelle, non importa quanto è buono, e nessuno riceve una valutazione negativa, non importa quanto è fatto male . È possibile utilizzare un ENUM per il campo stelle del tavolo, dandogli i valori dei numeri interi da zero a quattro. Alcuni linguaggi di programmazione, tra cui Java e editori SQL come MySQL e Oracle includono il tipo di dati ENUM, anche se non è una parte dello standard SQL 92.
Anche se SQLite non offre un tipo di dati ENUM, è possibile aggiungere una proprietà chiamata un vincolo di controllo per un campo, in tal modo costringendolo ad accettare i valori da un elenco ristretto. Per esempio, diciamo si imposta un campo di stato e desidera limitare i suoi valori al set di due caratteri abbreviazioni di stato degli Stati Uniti. Quando si crea la tabella in SQLite, è possibile impostare il campo di stato come un tipo CHAR e quindi aggiungere un vincolo di controllo che elenca le abbreviazioni di stato 50. SQLite supporta vincoli di controllo a partire dalla versione 3.3.0; prima di quella versione, SQLite analizzato i vincoli, ma non li rispettare. Se si aggiunge un vincolo a una tabella che contiene già i 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 la transazione.
Come un test aggiunto per garantire che le tabelle di dati ottenere i giusti valori, creare istruzioni SQL Select che cercano questi valori. Ad esempio, la seguente istruzione SELECT cerca i record di rating film che hanno un numero errato di stelle:
SELECT COUNT (*) FROM movie_ratings DOVE NON stelle a (0,1,2,3,4)
Esso restituisce un conteggio diverso da zero se trova record con numero di stelle che si trovano al di fuori della gamma di zero a quattro. Utilizzare i test come questo per verificare che le tabelle hanno valori corretti. Se si trova record con dati non corretti, esaminare i vincoli di controllo per i valori mancanti o extra.
Oltre a istruzioni SQL, la logica in programmi applicativi può anche controllare i valori di dati che vanno in database SQLite. Per esempio, come gli utenti digitano informazioni in una maschera di inserimento dati, la logica dello schermo controlla ogni valore e visualizza un messaggio che richiede all'utente di correggere i dati non corretti.