SQLITE FAQ:

(1) How do I create an AUTOINCREMENT field.

Short answer: A column declared INTEGER PRIMARY KEY will autoincrement.

Here is the long answer: Beginning with version SQLite 2.3.4, If you
declare a column of a table to be INTEGER PRIMARY KEY, then whenever you
insert a NULL into that column of the table, the NULL is automatically
converted into an integer which is one greater than the largest value of
that column over all other rows in the table, or 1 if the table is
empty. For example, suppose you have a table like this: 

CREATE TABLE t1(
  a INTEGER PRIMARY KEY,
  b INTEGER
);

With this table, the statement

INSERT INTO t1 VALUES(NULL,123);

is logically equivalent to saying:

INSERT INTO t1 VALUES((SELECT max(a) FROM t1)+1,123);

For SQLite version 2.2.0 through 2.3.3, if you insert a NULL into an
INTEGER PRIMARY KEY column, the NULL will be changed to a unique
integer, but it will a semi-random integer. Unique keys generated this
way will not be sequential. For SQLite version 2.3.4 and beyond, the
unique keys will be sequential until the largest key reaches a value of
2147483647. That is the largest 32-bit signed integer and cannot be
incremented, so subsequent insert attempts will revert to the
semi-random key generation algorithm of SQLite version 2.3.3 and
earlier.

Beginning with version 2.2.3, there is a new API function named
sqlite_last_insert_rowid() which will return the integer key for the
most recent insert operation. See the API documentation for details.


-----Original Message-----
From: Dynamix [mailto:[EMAIL PROTECTED] 
Sent: Monday, May 03, 2004 12:28 PM
To: [EMAIL PROTECTED]
Subject: [sqlite] Autoincrement of primary key

Greetings,

is it possible de have an autoincrement feature ?? i want to have
something like :

insert into table names (NULL, 'name1'); insert into table names (NULL,
'name2'); insert into table names (NULL, 'name3');

and then id will be 1,2 and 3 ?

Any help please

Hatem


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

Reply via email to