Professional Documents
Culture Documents
MySQL
-- by Aleksander Xhuvani
DROP TRIGGER IF EXISTS `FP_after_ins`;
CREATE DEFINER=`root`@`localhost` TRIGGER `FP_after_ins`
AFTER INSERT ON `flete_porosi`
FOR EACH ROW
BEGIN
-- declaration
DECLARE idart integer;
DECLARE idpor integer;
DECLARE t_sasia integer;
DECLARE t_stok integer;
DECLARE pag bit(1);
-- initialisation
SET t_sasia = NEW.Sasia;
SET idart = NEW.ID_Art_fk;
SET idpor = NEW.ID_Por_fk;
SET t_stok = (SELECT Stock FROM artikull WHERE ID_Art = idart);
SET pag = (SELECT Ka_Paguar FROM porosi WHERE ID_Por = idpor);
-- update
IF pag = 1 THEN
UPDATE artikull SET Stock = t_stok - t_sasia WHERE ID_Art = idart;
END IF;
END
CREATE TRIGGER `TR_after_insert`
CREATE DEFINER=`root`@`localhost` TRIGGER `TR_after_insert`
AFTER INSERT ON `rezervim`
FOR EACH ROW
BEGIN
-- declaration
DECLARE total_bileta int;
DECLARE bileta_shitur int;
DECLARE bileta_mbetur int;
DECLARE idu int;
DECLARE pag nvarchar(30);
-- initialisation
SET idu = NEW.id_udhetim_fk;
SET pag = NEW.paguar;
SET bileta_shitur = NEW.n_bileta;
SET total_bileta =(SELECT n_v_a FROM udhetim WHERE id_udhetim = idu);
IF pag <>'Nuk ka paguar' THEN
SET bileta_mbetur = total_bileta -bileta_shitur;
IF bileta_mbetur > 0 THEN
UPDATE udhetim SET n_v_a = bileta_mbetur WHERE id_udhetim = idu;
END IF;
END IF;
END
-- by Aleksander Xhuvani
DROP TRIGGER IF EXISTS `FP_after_del`;
CREATE DEFINER=`root`@`localhost` TRIGGER `FP_after_ins`
AFTER DELETE ON `flete_porosi`
FOR EACH ROW
BEGIN
-- declaration
DECLARE idart integer;
DECLARE idpor integer;
DECLARE t_sasia integer;
DECLARE t_stok integer;
DECLARE pag bit(1);
-- initialisation
SET t_sasia = OLD.Sasia;
SET idart = OLD.ID_Art_fk;
SET idpor = OLD.ID_Por_fk;
SET t_stok = (SELECT Stock FROM artikull WHERE ID_Art = idart);
SET pag = (SELECT Ka_Paguar FROM porosi WHERE ID_Por = idpor);
-- update
IF pag = 1 THEN
UPDATE artikull SET Stock = t_stok + t_sasia WHERE ID_Art = idart;
END IF;
END
CREATE TRIGGER `TR_after_delete`
CREATE DEFINER=`root`@`localhost` TRIGGER `TR_after_delete`
AFTER DELETE ON `rezervim`
FOR EACH ROW
BEGIN
-- declaration
DECLARE total_bileta int;
DECLARE bileta_shitur int;
DECLARE bileta_mbetur int;
DECLARE idu int;
DECLARE pag nvarchar(30);
-- initialisation
SET idu = OLD.id_udhetim_fk;
SET pag = OLD.paguar;
SET bileta_shitur = OLD.n_bileta;
SET total_bileta =(SELECT n_v_a FROM udhetim WHERE id_udhetim = idu);
IF pag <>'Nuk ka paguar' THEN
SET bileta_mbetur = total_bileta + bileta_shitur;
IF bileta_mbetur > 0 THEN
UPDATE udhetim SET n_v_a = bileta_mbetur WHERE id_udhetim = idu;
END IF;
END IF;
END
-- by Aleksander Xhuvani
DROP TRIGGER IF EXISTS `FP_after_update`;
CREATE DEFINER=`root`@`localhost` TRIGGER `FP_after_ins`
AFTER DELETE ON `flete_porosi`
FOR EACH ROW
BEGIN
-- declaration
DECLARE idart integer;
DECLARE idpor integer;
DECLARE t_sasia integer;
DECLARE t_stok integer;
DECLARE t_sasia_old integer;
DECLARE pag bit(1);
-- initialisation
SET t_sasia = NEW.Sasia;
SET t_sasia_old = OLD.Sasia;
SET idart = NEW.ID_Art_fk;
SET idpor = NEW.ID_Por_fk;
SET t_stok = (SELECT Stock FROM artikull WHERE ID_Art = idart);
SET pag = (SELECT Ka_Paguar FROM porosi WHERE ID_Por = idpor);
-- update
IF pag = 1 THEN
UPDATE artikull SET Stock = t_stok - t_sasia+t_sasia_old WHERE ID_Art = idart;
END IF;
END
CREATE TRIGGER `TR_after_update`
CREATE DEFINER=`root`@`localhost` TRIGGER `TR_after_update`
AFTER UPDATE ON `rezervim`
FOR EACH ROW
BEGIN
-- declaration
DECLARE total_bileta int;
DECLARE bileta_shitur_new int;
DECLARE bileta_shitur_old int;
DECLARE bileta_mbetur int;
DECLARE idu int;
DECLARE pag nvarchar(30);
-- initialisation
SET idu = NEW.id_udhetim_fk;
SET pag = NEW.paguar;
SET bileta_shitur_new = NEW.n_bileta;
SET bileta_shitur_old = OLD.n_bileta;
SET total_bileta =(SELECT n_v_a FROM udhetim WHERE id_udhetim = idu);
IF pag <>'Nuk ka paguar' THEN
SET bileta_mbetur = total_bileta + bileta_shitur_old - bileta_shitur_new;
IF bileta_mbetur > 0 THEN
UPDATE udhetim SET n_v_a = bileta_mbetur WHERE id_udhetim = idu;
END IF;
END IF;
END
SQL Server
1) After insert
USE [HS_2000_v5]
GO
/****** Object: Trigger [dbo].[FP_INSER1] Script Date: 07/03/2022 22:57:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
------------------------------------
----- by Aleksander Xhuvani --------
------------------------------------
ALTER TRIGGER [dbo].[FP_INSER1]
ON [dbo].[FLETE_POROSI]
FOR INSERT
AS
BEGIN
SET @stoku =
(SELECT ARTIKULL.Stock
FROM ARTIKULL
WHERE ID_Art = @idart)
SET @pag =
(SELECT POROSI.Ka_Paguar
FROM POROSI
WHERE ID_Por = @idpor)
IF @pag = 1
BEGIN
UPDATE ARTIKULL
SET Stock = @stoku-@sasia
WHERE ID_Art = @idart
END
END
2) After delete
USE [HS_2000_v5]
GO
/****** Object: Trigger [dbo].[FP_DELETE] Script Date: 07/03/2022 22:58:43 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
---------------------------------
----- by Aleksander Xhuvani -----
---------------------------------
ALTER TRIGGER [dbo].[FP_DELETE]
ON [dbo].[FLETE_POROSI]
FOR DELETE
AS
BEGIN
SET @stoku =
(SELECT ARTIKULL.Stock
FROM ARTIKULL
WHERE ID_Art = @idart)
SET @pag =
(SELECT POROSI.Ka_Paguar
FROM POROSI
WHERE ID_Por = @idpor)
IF @pag = 1
BEGIN
UPDATE ARTIKULL
SET Stock = @stoku+@sasia
WHERE ID_Art = @idart
END
END
3) After update
USE [HS_2000_v5]
GO
/****** Object: Trigger [dbo].[FP_UPDATE] Script Date: 07/03/2022 22:38:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
---------------------------------
----- by Aleksander Xhuvani -----
---------------------------------
ALTER TRIGGER [dbo].[FP_UPDATE]
ON [dbo].[FLETE_POROSI]
AFTER UPDATE
AS
IF (UPDATE (Sasia))
BEGIN
SET @stoku =
(SELECT ARTIKULL.Stock
FROM ARTIKULL
WHERE ID_Art = @idart)
SET @pag =
(SELECT POROSI.Ka_Paguar
FROM POROSI
WHERE ID_Por = @idpor)
IF @pag = 1
BEGIN
UPDATE ARTIKULL
SET Stock = @stoku - @sasia + @sasia_old
WHERE ID_Art = @idart
END
PRINT 'Procedura pas UPDATE u kry !!'
END
MS ACCESS (Macro)
1) After INSERT
2) After delete (Macro)
3) After update- (Macro)