On 5/9/05, Brown, Dave <[EMAIL PROTECTED]> wrote: > > The question I have is: If a row gets deleted, how do I sequentially reorder > the remaining > rows? For example: > > Start with this: > a, 1 > b, 2 > c, 3 > d, 4 > > now delete the row with 'b': > > a, 1 > c, 3 > d, 4 > > I'm trying to figure out how to write an update statement which will reorder > this back to: > > a, 1 > c, 2 > d, 3
I think this trigger will do it on table playlist CREATE TRIGGER keep_in_order_delete AFTER DELETE ON playlist BEGIN UPDATE playlist SET ord = ord-1 WHERE ord > old.ord; END; Full example: CREATE TABLE x ( name VARCHAR(10), ord INTEGER ); INSERT INTO x VALUES("a", 1); INSERT INTO x VALUES("b", 2); INSERT INTO x VALUES("c", 3); INSERT INTO x VALUES("d", 4); SELECT * FROM x; SELECT datetime('now'); CREATE TRIGGER keep_in_order_delete AFTER DELETE ON x BEGIN UPDATE x SET ord = ord-1 WHERE ord > old.ord; END; DELETE FROM x WHERE ord = 2; SELECT * FROM x; SELECT datetime('now'); DROP TABLE x; -- Gabor Szabo http://www.szabgab.com/