On 7/06/2009 11:38 AM, P Kishor wrote:
> On Sat, Jun 6, 2009 at 8:28 PM, Kelly Jones<[email protected]>
> wrote:
>> On 6/6/09, P Kishor <[email protected]> wrote:
>>> On Sat, Jun 6, 2009 at 1:43 PM, Kelly Jones<[email protected]>
>>> wrote:
>>>> I have a text file onenum.txt with just "1234\n" in it, and a db w/
>>>> this schema:
>>>>
>>>> sqlite> .schema
>>>> CREATE TABLE test (foo INTEGER PRIMARY KEY);
>>>>
>>>> When I import, it fails as follows:
>>>>
>>>> sqlite> .import onenum.txt test
>>>> Error: datatype mismatch
>>>>
>>>> Is sqlite3 treating "1234" as a string or something? Short of doing
>>>> "INSERT INTO test VALUES (1234);", how do I import numbers into
>>>> sqlite3's rowid column? [1]
>>> Remove the "\n"
>> Er, by "\n", I just meant that the file ended in a newline. I didn't
>> literally type a backslash and an 'n' into the file.
>
>
> Yes, I understand what you meant. If there is a newline, sqlite tries
> to import it, and that doesn't fit into the INTEGER PRIMARY KEY
> categorization, hence the datatype mismatch error.
If there is a newline?? There should be a newline at the end of each
line of the file; with luck the reader will not complain if the final
newline is missing.
Expected behaviour for various raw file contents:
1234 => one row, ok (with luck)
1234\n => one row, ok
1234\n\n => first row ok, 2nd is empty, expect error message
1234\n5678 => two rows, ok (with luck)
1234\n5678\n => two rows, ok
> So, the following
> fails (I am typing bogus lines to indicate the newline
> ------
> 1234
>
> ------
>
> while the following imports just fine
> ------
> 1234
> ------
Simply: avoid having empty or blank lines in the .import file,
especially at the end, where they're not obvious.
IMHO that error message is carrying "Lite" a little too far; some prefix of:
data mismatch in line 2, column 1 (foo): expected integer, found ''
might save some wear and tear on the help desk :-)
Cheers,
John
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users