Not sure about replacing the collation sequence - does not sound
easier than recreating the table.

You could just add a view:

sqlite> CREATE TABLE test_table (ID INTEGER PRIMARY KEY,
   ...>                         ExternalID2 INTEGER,
   ...>                         ExternalID INTEGER,
   ...>                         Value );
sqlite> INSERT INTO "test_table" VALUES(1007,1,37,'-5');
sqlite> INSERT INTO "test_table" VALUES(1044,4,37,'-10');
sqlite> INSERT INTO "test_table" VALUES(1081,2,37,'-20');
sqlite> INSERT INTO "test_table" VALUES(1118,3,37,'-1');
sqlite> INSERT INTO "test_table" VALUES(1155,5,37,'-7');
sqlite> INSERT INTO "test_table" VALUES( 2044,4,37,'fred');
sqlite> INSERT INTO "test_table" VALUES( 3044,4,37,'bill');
sqlite>
sqlite> create view test_view as
   ...> select ID, ExternalID2, ExternalID, cast( value as integer ) as Value
   ...> from test_table where cast( Value as text)=cast(Value as integer);
sqlite>
sqlite> select * from test_view;
1007|1|37|-5
1044|4|37|-10
1081|2|37|-20
1118|3|37|-1
1155|5|37|-7
sqlite>
sqlite> select min( Value ) from test_view;
-20
sqlite> select max( Value ) from test_view;
-1

Rgds,
Simon


2008/8/15 Dennis Volodomanov <[EMAIL PROTECTED]>:
>
>> Declaring the column as integer does not prevent you from storing strings:
>>
>>
> Yes, except for a small problem of updating all live databases with the
> new column type. I don't think I can update the column type without
> recreating the table, right? It's not hard, so if it comes down to this,
> then I guess I'll do it. Or if replacing the collation sequence is not
> too hard, I'd rather go that route.
>
> Thank you,
>
>   Dennis
>
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to