On 31/08/2007, Babu, Lokesh <[EMAIL PROTECTED]> wrote:
> I was trying the following piece of code (see below),
>
> The requirement here is very simple, I want the t_id field or ROWID
> field to be regenerated sequentially even after delete has been
> performed.
> <snip>

Hi Lokesh,

You can achieve this with a trigger as follows:

SQLite version 3.4.2
Enter ".help" for instructions
sqlite>
sqlite> create table testTbl( t_id integer, t_name text, t_desc text );
sqlite>
sqlite> insert into testTbl values( 1, '111', 'd1111' );
sqlite> insert into testTbl values( 2, '222', 'd2' );
sqlite> insert into testTbl values( 3, '3', 'd3' );
sqlite> insert into testTbl values( 4, '4', 'd4' );
sqlite> insert into testTbl values( 5, '5', 'd5' );
sqlite> create trigger testTblTrigger after DELETE on testTbl begin
   ...> update testTbl set t_id=t_id-1 where t_id>old.t_id;
   ...> end;
sqlite>
sqlite>
sqlite> select * from testTbl;
1|111|d1111
2|222|d2
3|3|d3
4|4|d4
5|5|d5
sqlite> delete from testTbl where t_id=2;
sqlite> select * from testTbl;
1|111|d1111
2|3|d3
3|4|d4
4|5|d5
sqlite> delete from testTbl where t_id>1 and t_id<4;
sqlite> select * from testTbl;
1|111|d1111
2|5|d5
sqlite>

Rgds,
Simon

-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------

Reply via email to