Örnek olarak detail olark bağlı
ID....DEGER.......SIRA
1........A.............1
2........B.............2
3........C.............3
4........D.............4
5........E.............5
benzer bir tablom var.
Burda E degerindeki sıra 2 verdiğimde sıralamada B,C,D kaydırma yapmak istiyorum.
ID....DEGER.......SIRA
1........A.............1
2........B.............3
3........C.............4
4........D.............5
5........E.............2
Veya tersi bir durumda B degerine 5 verdiğimde ise,
ID....DEGER.......SIRA
1........A.............1
2........B.............5
3........C.............2
4........D.............3
5........E.............4
sıralama güncellemesi yaptırmak istiyorum.
Bunu trggerle halletmek istiyorum.
Mantık olarak döngü kurup büyük değerler 1 artırma küçülenlerde bir eksiltme olarak düşündüm.
Kod: Tümünü seç
CREATE TRIGGER T_BU0 FOR TABLO
ACTIVE BEFORE UPDATE POSITION 0
AS
DECLARE variable SIRANO integer;
DECLARE variable IDNOSU integer;
begin
for select SIRA,ID from TABLO where (detay=new.detay) and (SIRA>=new.SIRA) into :SIRANO,:IDNOSU do
begin
update TABLO set SIRA=:SIRA+1 where ID=:IDNOSU;
end
for select SIRA,ID from TABLO where (detay=new.detay) and (SIRA<=new.SIRA) into :SIRANO,:IDNOSU do
begin
update TABLO set SIRA=:SIRA-1 where ID=:IDNOSU;
end
end
Yardımlarınızı bekliyorum.