Hi, ALL,

CREATE TABLE playersinleague(
id integer
playerid integer
ishitter char
age integer
value double
currvalue double
draft boolean
isnew char(1)
current_rank integer
original_rank integer
deleted integer
foreign key(id) references leagues(id)
foreign key(playerid) references players(playerid)
);

CREATE TRIGGER playersinleague_insert AFTER INSERT on playersinleague
BEGIN
    UPDATE playersinleague SET current_rank = 1+ (select max(
current_rank ) from playersinleague WHERE id = new.id), original_rank
= current_rank WHERE id = new.id AND current_rank IS NULL;
END;

or do it this way:

DROP TRIGGER playersinleague_insert;
CREATE TRIGGER playersinleague_insert AFTER INSERT ON playersinleague
BEGIN
    UPDATE playersinleague SET current_rank = 1 + (select max(
current_rank ) FROM playersinleague WHERE id = new.id), original_rank
= current_rank WHERE rowid = new.rowid;
END;

After that:

INSERT INTO playersinleague(id,playerid,ishitter,age,value,currvalue,dra
ft,isnew,deleted) SELECT 1, players.playerid, players.ishitter, players.age, pla
yers.value, players.value, 0, "0", 0 FROM players WHERE (teamid >= 1 AND teamid
<= 15) OR (teamid >= 16 AND teamid <= 30) ORDER BY rank;

SELECT * FROM playersinleague WHERE id=1 AND playerid=1;
1|1|1|27|42.0|42.0|0|0|||0

I didn't specify current_rank on the INSERT query which means the
field shuold be NULL.

I think I am doing something wrong but I don't see what.

Could someone please help?
Also will the UPDATE in trigger do the right thing and correctly
update the original_rank?

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

Reply via email to