TRIGERITE loomine localhost’is

Triger – Protsess millega abil kõik sisse kirjutanud tegevused tehakse automaatselt.

Näiteks:

Trigeri abil kasutaja saab jälgida, mis tegevused oli tehtud andmebaasis(INSERT, UPDATE, DELETE)

CREATE TABLE logi(
	id int PRIMARY key AUTO_INCREMENT,
    kuupaev datetime,
    kasutaja varchar(100),
    andmed TEXT,
	tegevus varchar(100))

Päästik – тригер

Triger mis jälgib lisatud tabelisse andmed.

INSERT INTO logi(kuupaev, kasutaja, andmed, tegevus)
VALUES (NOW(), USER(),
        Concat(NEW.last_name, ', ', NEW.first_name,', ', NEW.member_since),
        'guest on lisatud')

INSERT INTO logi(kuupaev, kasutaja, andmed, tegevus)
VALUES (NOW(), USER(),
        Concat(OLD.last_name, ', ', OLD.first_name,', ', OLD.member_since),
        'guest on lisatud')

INSERT INTO logi(kuupaev, kasutaja, andmed, tegevus)
VALUES (NOW(), USER(),
        Concat('vanad andmed ', OLD.last_name,', ', OLd.first_name,', ', OLD.member_since,
               '\n UUED ANDMED', NEW.last_name,', ',
NEW.first_name,', ',NEW.member_since),
        'guest on uuendatud')

ROOM TABLE

TRIGERITE loomine MS SQL Server’s

CREATE TRIGGER guest_lisamine
ON guest
FOR INSERT
AS
INSERT INTO logi(kuupaev, kasutaja, andmed, tegevus)
SELECT GETDATE(), USER,
CONCAT(inserted.first_name, ', ', inserted.last_name),
'guest on lisatud'
FROM inserted
CREATE TRIGGER guest_kustutamine
ON guest
FOR DELETE
AS
INSERT INTO logi(kuupaev, kasutaja, andmed, tegevus)
SELECT GETDATE(), USER,
CONCAT(deleted.first_name, ', ', deleted.last_name),
'guest on kustutatud'
FROM deleted
CREATE TRIGGER guest_uuendamine
ON guest
FOR UPDATE
AS
INSERT INTO logi(kuupaev, kasutaja, andmed, tegevus)
SELECT GETDATE(), USER,
CONCAT('VANAD -',
deleted.first_name, ', ', deleted.last_name,
'UUED - ', 
inserted.first_name,', ',inserted.last_name),
'guest on uuendatud'
FROM deleted INNER JOIN inserted
ON deleted.guest_id=inserted.guest_id

ROOM Trigger

Protseduuri TÖÖ

Ülasanne 1:

SELECT * FROM guest
go
CREATE PROCEDURE Andmete_lisamine
@osaID int
AS
BEGIN
SELECT first_name,last_name  
FROM guest
WHERE guest_id = @osaID;
END
 
EXEC Andmete_lisamine @osaID=6;
SELECT * FROM guest

Ülesanne 2:

go
CREATE PROCEDURE Kustutamine
@deleteID int
AS
BEGIN
SELECT * FROM guest;
DELETE FROM guest 
WHERE guest_id=@deleteID;
SELECT * FROM guest;
END
 
EXEC Kustutamine @deleteID= 4;

Ülesanne 3:

go
CREATE PROCEDURE uuendamine
@omaID int
AS
BEGIN
SELECT * FROM guest;
UPDATE guest SET member_since='04-06-2022'
WHERE guest_id=@omaID;
SELECT * FROM guest;
END
 
EXEC uuendamine @omaID=5;

Ülesanne 4:

go
CREATE PROCEDURE Külalliste_leidmine
AS
BEGIN
SELECT count(guest_id) as guest_kogus
FROM guest;
END
 
EXEC Külalliste_leidmine;

Ülesanne 5:

go
CREATE PROCEDURE oma_protseduur
AS
BEGIN
SELECT member_since,
IIF (member_since LIKE '2022-06-04', 'Halvasti', 'Hästi') AS Member_guest
FROM guest;
END
 
EXEC oma_protseduur;

en_US