----- Forwarded by Ben Carlyle/AU/IRSA/Rail on 09/03/2004 10:56 AM -----

Ben Carlyle
09/03/2004 10:54 AM


        To:     "Roger Hawkins" <[EMAIL PROTECTED]>@CORP
        cc: 
        Subject:        RE: [sqlite] Resetting primary key auto-increment after table 
re-create

Roger,





"Roger Hawkins" <[EMAIL PROTECTED]>
08/03/2004 03:18 PM

 
        To:     <[EMAIL PROTECTED]>
        cc: 
        Subject:        RE: [sqlite] Resetting primary key auto-increment after table 
re-create



> Thanks for your reply...
> I havent found any reference to this in the doco so Im not sure how any
> of this might work..

http://sqlite.org/faq.html#q1
Pay particular attention to the "is logically equivalent" part.

> So what you are saying is that if I recreate the table I can insert all
> the old values back into the newly created table (including the primary
> key values) and the primary key column wont complain? That's a bit
> scary!

So long as you don't insert the same number into the INTEGER PRIMARY KEY 
twice, sqlite will not complain. It's a primarily a primary key. It only 
doubles as an auto-increment field when you insert NULLs into it.

> Even if this is true what happens when I next insert a value (normally
> without specifying the primary key field) - does it just pick up the
> latest?

> Any one tried this?

Yes. You can, too:

CREATE TABLE foo(bar INTEGER PRIMARY KEY);
INSERT INTO foo VALUES(NULL);
INSERT INTO foo VALUES(2);
INSERT INTO foo VALUES(NULL);
INSERT INTO foo VALUES(3); -- SQL Error: PRIMARY KEY must be unique

SELECT * FROM foo:
1
2
3

Benjamin.




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to