> Of course if you define a column "rowid integer primary key" then the
> declared column and the internal rowid are one and the same...

As an extension of this, if you are in the habit of relying on the internal 
rowid rather than having your own specifically declared "integer primary 
key" *and* use the vacuum command, then adding this particular declaration 
inside your table can be quite useful since the vacuum command *may* alter 
your rowids otherwise...


SQLite version 3.6.23.1
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table t(x);
sqlite> insert into t(rowid,x) values(1,1);
sqlite> insert into t(rowid,x) values(3,3);
sqlite> select rowid,x from t;
1|1
3|3
sqlite> vacuum;
sqlite> select rowid,x from t;
1|1
2|3
sqlite> drop table t;
sqlite> create table t(rowid integer primary key, x);
sqlite> insert into t(rowid,x) values(1,1);
sqlite> insert into t(rowid,x) values(3,3);
sqlite> select rowid,x from t;
1|1
3|3
sqlite> vacuum;
sqlite> select rowid,x from t;
1|1
3|3
sqlite>

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to