Hello,

I am wandering if i have a block of dml statements in a trigger ( instead
of ). Is it a single transaction? If something fails everything fails or?

SELECT
CASE
WHEN
NOT EXISTS ( SELECT klas_sifra FROM klasifikacija kl , tipklas tk WHERE kl
. tkla_id = tk . tkla_id AND kl . klas_sifra = new . grupa_klas_sifra AND
tk . tkla_naziv = 'GRUPA' )
THEN
RAISE ( ROLLBACK , ' * Ne postoji grupa pod šifrom ' )
WHEN
NOT EXISTS ( SELECT klas_sifra FROM klasifikacija kl , tipklas tk WHERE kl
. tkla_id = tk . tkla_id AND kl . klas_sifra = new . grupa_klas_sifra AND
tk . tkla_naziv = 'TIP ARTIKLA' )
THEN
RAISE ( ROLLBACK , ' * Ne postoji tip artikla pod šifrom ' )
END;

UPDATE katklas kkl
   SET kkl.kkl_kat_sifra  = new.kat_sifra
      ,kkl.kkl_klas_sifra = new.grupa_klas_sifra
 WHERE kkl.kkl_kat_sifra  = old.kat_sifra
   AND kkl.kkl_klas_sifra =  old.grupa_klas_sifra;

UPDATE katklas kkl
SET kkl.kkl_kat_sifra  = new.kat_sifra
  ,kkl.kkl_klas_sifra = new.grupa_klas_sifra
WHERE kkl.kkl_kat_sifra  = old.kat_sifra
AND kkl.kkl_klas_sifra =  old.tip_klas_sifra;

UPDATE katalog kat
   SET kat.kat_sifra   = new.kat_sifra
      ,kat.kat_barcode = new.kat_barcode
      ,kat.kat_naziv   = new.kat_naziv
      ,kat.kat_jmj     = new.kat_jmj
      ,kat.kat_car     = new.kat_car
      ,kat.kat_mpc     = new.kat_mpc
      ,kat.kat_porez   = new.kat_porez
WHERE kat.kat_sifra = old.kat_sifra;

If first update fails, is it considered a failiure for the whole thing?
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to