You are confused as to the BLOB datatype (an arbitrary bucket-o-bytes) and BLOB (or no) affinity. The BLOB data storage type means an arbitrary bucket-o-bytes with no meaning to SQLite3. The BLOB column affinity (which can be achieved by a column declaration of type BLOB or an *empty* affinity) means `do not convert the datatype of storage -- store what you are given without molestation`. The column `do_not_molest_me` in table `x` can be specified to store whatever datatype is given by either of the following declarations: ``` create table x ( do_not_molest_me blob ); ``` or ``` create table x ( do_not_molest_me ); ``` Any value at the intersection of any column and row in any table can store data of any storage type. The column affinity (if not BLOB or *empty*) specifies what storage type is preferred if the data can be converted to that storage type. <https://sqlite.org/datatype3.html> The root cause of the issue is failing to comprehend section 3.1 of that documentation. The column affinity NONE has type NUMERIC, not BLOB.