2011-01-24 15 views
30

In SQLite, quando dico:SQLite VARCHAR dimensione predefinita

CREATE TABLE my_table 
(
    my_column VARCHAR 
); 

senza specificare le dimensioni del VARCHAR, qual è la dimensione predefinita che viene utilizzata?

Non riesco a trovarlo su sqlite.org o sul mio file di database.

So che SQLite non impone le dimensioni quando si prova a importare varchar(500) in varchar(30), ma ci sono dei compromessi nella specifica della dimensione iniziale e quali sono le migliori pratiche?

risposta

42

Non importa.

SQLite non utilizza le dimensioni quando si dichiara il tipo VARCHAR. In effetti, quasi non usa neanche il tipo.

È possibile memorizzare TEXT in una colonna INT in SQLite. E SQLite sarà never truncate una colonna TEXT.

+0

Wow significa che la colonna di SQLite memorizza invece un puntatore ai dati effettivi? – lulalala

+1

Non conosco il meccanismo di archiviazione esatto utilizzato da SQLite (un aspetto del "contratto SQL" è che non si assume nulla sul meccanismo di archiviazione sottostante) ma mi aspetto che utilizzi righe di lunghezza variabile con i dati TEXT archiviati nella riga. –

Problemi correlati