On Tue, 4 Nov 2008 10:24:18 +0800, <[EMAIL PROTECTED]>
wrote :

>Hi,
>
>I found an offical mention here: http://www.sqlite.org/datatype3.html

It is all on that page. Datatypes are dynamic. In general,
the value inserted determines the type, not the column
definition.

>but seems not a "full list", because it only mention some "Affinity". 

http://www.sqlite.org/datatype3.html#affinity is very
important.

>I want a full list of ALL VALID  data types that sqlite
>really support, here is my result, does anyone could make 
>it really full list?
>
>REAL
>FLOA  (FLOAT will do??)
>DOUB  (DOUBLE will do??)
>INT    (duplicate with INTEGER??)
>INTEGER
>NUMERIC
>DATETIME
>CHAR
>CLOB
>VARCHAR   (NVARCHAR will do??)
>TEXT  (NTEXTwill do??)
>BLOB

NONE might be another one.
You can use _anything_ here, even something like MYTYPE or
BLAHBLAH, but the declared type is only recognised if one of
the substrings above are matched. If there is no match,
numeric affinity will be used, but if you insert a text
string, it will still be stored as text.

NVARCHAR contains CHAR so its affinity will be TEXT.

> and, does CHAR/CLOB/VARCHAR/TEXT/BLOB all support
> size definition? let's say CHAR(50), VARCHAR(100),
> TEXT(200), BLOB(500) etc?

Yes, syntactically they do, but the size definition is
simply ignored. 

If you want strict typing, you will have to add that layer
in your application or enforce it using CONSTRAINTs and
TRIGGERs.
-- 
  (  Kees Nuyt
  )
c[_]
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to