{"id":1131,"date":"2025-09-03T12:04:44","date_gmt":"2025-09-03T09:04:44","guid":{"rendered":"https:\/\/mart1n2k.wordpress.com\/?page_id=1131"},"modified":"2025-10-27T08:31:34","modified_gmt":"2025-10-27T08:31:34","slug":"triggerite-loomine","status":"publish","type":"page","link":"https:\/\/martinrossakov24.thkit.ee\/wp\/ru\/triggerite-loomine\/","title":{"rendered":"Triggerite loomine"},"content":{"rendered":"\n<p>Triger ( trigger \/ p\u00e4\u00e4stik ) &#8212; protsess, mille abil tema sisse kirjutatud tegevused automaatselt k\u00e4ivitatakse. ( INSERT,DELETE,UPDATE )<br>\u0422\u0440\u0438\u0433\u0433\u0435\u0440 ( trigger \/ p\u00e4\u00e4stik ) \u2014 \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0432 \u043d\u0435\u043c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438. ( INSERT,DELETE,UPDATE )<\/p>\n\n\n\n<p>1)andmebaasi ja tabeli linnad loomine<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\ncreate database martinTrigerid\nuse martinTrigerid\n\nCreate table linnad(\nlinnID int identity(1,1) PRIMARY KEY,\nlinnanimi varchar(15),\nrahvaarv int);\n<\/pre><\/div>\n\n\n<p>2)tabeli logi loomine <\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\n--tabel logi n\u00e4itab adminile kuidas tabeli linnad kasutatakse, \n--tabel logi t\u00e4idab triger\nCreate table logi(\nid int identity(1,1) PRIMARY KEY,\naeg DATETIME,\ntoiming  varchar(100),\nandmed varchar(200),\nkasutaja varchar(100)\n<\/pre><\/div>\n\n\n<p>3)luua trigger, mis j\u00e4lgib linnade tabeli t\u00e4itmist (millal kirje lisati ja kes selle lisas)<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\n--insert trigger mis j\u00e4lgib tabeli linnad t\u00e4itmine\ncreate trigger linnaLisamine\non linnad\nfor insert\nas\ninsert into logi(aeg, kasutaja, toiming, andmed)\nselect\ngetdate(),\nSYSTEM_USER,\n&#039;linn on lisatud&#039;,\ninserted.linnanimi\nfrom inserted;\n<\/pre><\/div>\n\n\n<p>4)lisame andmed tabelisse linnad ja n\u00e4itame kohe k\u00f5ik tabelid ning kontrollime triggri kontrolli<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\n--trigeri tegevuse kontroll\ninsert into linnad(linnanimi,rahvaarv)\nvalues (&#039;Tallinn&#039;, 650000);\nselect * from linnad;\nselect * from logi;\n<\/pre><\/div>\n\n\n<p>5)delete trigger, j\u00e4lgib linna kustatamine tabelis linnad<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\n--delete trigger, j\u00e4lgib linna kustatamine tabelis linnad\ncreate trigger linnaKustutamine\non linnad\nfor delete\nas\ninsert into logi(aeg, kasutaja, toiming, andmed)\nselect\ngetdate(),\nSYSTEM_USER,\n&#039;linn on kustutatud&#039;,\ndeleted.linnanimi\nfrom deleted;\n<\/pre><\/div>\n\n\n<p>6)delete trigger kontroll<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\n--kontroll\ndelete from linnad where linnID=1;\nselect * from linnad;\nselect * from logi;\n<\/pre><\/div>\n\n\n<p>7) trigeri uuendamine, mis n\u00e4itab, millistes lahtrites andmed uuendati; n\u00e4itab vanu ja uusi andmeid<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\n--update trigger\ncreate trigger linnaUuendamine\non linnad\nfor update\nas\ninsert into logi(aeg, kasutaja, toiming, andmed)\nselect\ngetdate(),\nSYSTEM_USER,\n&#039;linn on uuendatud&#039;,\nconcat (&#039;vanad andmed: &#039;, deleted.linnanimi, &#039; ,&#039;, deleted.rahvaarv, &#039;uued andmed: &#039;, inserted.linnanimi, &#039; ,&#039;,inserted.rahvaarv)\nfrom deleted\ninner join inserted\non deleted.linnId=inserted.linnId;\n<\/pre><\/div>\n\n\n<p>8) update triggger kontrolli<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\n--kontroll\nupdate linnad set rahvaarv=650002\nwhere linnID=2;\nselect * from linnad;\nselect * from logi;\n<\/pre><\/div>\n\n\n<p><strong>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;XAMPP&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/strong><\/p>\n\n\n\n<p>1)K\u00f5ik Triggers<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/mart1n2k.wordpress.com\/wp-content\/uploads\/2025\/09\/1065bfe6-d052-4a97-ba40-69c4f13657b1.png?w=567\" alt=\"\" class=\"wp-image-1143\"\/><\/figure>\n\n\n\n<p>2)Trigger linnaLisamine<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/mart1n2k.wordpress.com\/wp-content\/uploads\/2025\/09\/7745e0d4-4ab1-4209-9516-a70b75afb288.png?w=697\" alt=\"\" class=\"wp-image-1144\" style=\"width:503px;height:auto\"\/><\/figure>\n\n\n\n<p>3)Trigger linnaKustutamine<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/mart1n2k.wordpress.com\/wp-content\/uploads\/2025\/09\/f4280dc1-5edb-4c72-8f69-fdc31da3ddea.png?w=702\" alt=\"\" class=\"wp-image-1146\" style=\"width:511px;height:auto\"\/><\/figure>\n\n\n\n<p>4)Trigger linnaUuendamine<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/mart1n2k.wordpress.com\/wp-content\/uploads\/2025\/09\/afa34887-779e-44dc-b29e-e8e958295015.png?w=703\" alt=\"\" class=\"wp-image-1147\" style=\"width:516px;height:auto\"\/><\/figure>\n\n\n\n<p>5)Logi tabel ja kinnitus, et k\u00f5ik triggereid t\u00f6\u00f6tavad !<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/mart1n2k.wordpress.com\/wp-content\/uploads\/2025\/09\/f4e33a59-0804-436d-aa63-ed712aa5630f.png?w=766\" alt=\"\" class=\"wp-image-1149\"\/><\/figure>\n\n\n\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;10.09.2025&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\ncreate database triger2tabelid\nuse triger2tabelid\n\n--tabel toode ja toodekategooria on seotud oma vahel\ncreate table toodekategooria(\ntoodekategooriaId int not null primary key identity (1,1),\ntoodekategooria varchar(100) unique,\nkirjeldus text);\n\ncreate table toode(\ntoodeId int not null primary key identity (1,1),\ntoodenimetus varchar(100) unique,\nhind decimal(5,2),\ntoodekategooriaId int,\nforeign key (toodekategooriaId) references toodekategooria(toodekategooriaId)\n);\n\ninsert into toodekategooria(toodekategooria)\nvalues (&#039;joogid&#039;);\nselect * from toodekategooria\n\ninsert into toode(toodenimetus, hind, toodekategooriaId)\nvalues (&#039;kino&#039;,10,1)\nselect t.toodenimetus, t.hind, tk.toodekategooria from toode t\ninner join toodekategooria tk\non t.toodekategooriaId=tk.toodekategooriaId;\n\n--tabel logi loomine\n\ncreate table logi(\nlogiId int not null primary key identity(1,1),\nkuupaev datetime,\nkasutaja varchar (100),\nandmed text\n);\n\n--triger mis j\u00e4lgib insert lisamine tabelisse\ncreate trigger toodeLisamine\non toode\nfor insert\nas\ninsert into logi(kuupaev, kasutaja, andmed)\nselect\ngetdate(),\nSYSTEM_USER,\nconcat(inserted.toodenimetus,&#039;, &#039;,inserted.hind, &#039;, &#039;,tk.toodekategooria)\nfrom inserted\ninner join toodekategooria tk\non inserted.toodekategooriaId=tk.toodekategooriaId;\n\n--kontroll\ninsert into toode(toodenimetus, hind, toodekategooriaId)\nvalues (&#039;teater&#039;,100,1)\nselect * from toode\nselect * from logi\n\n--triger mis j\u00e4lgib delete kustutamine tabelisse\ncreate trigger toodeKustutamine\non toode\nfor delete\nas\ninsert into logi(kuupaev, kasutaja, andmed)\nselect\ngetdate(),\nSYSTEM_USER,\nconcat(&#039;Kustutatud tabelist :&#039;,deleted.toodenimetus,&#039;, &#039;,deleted.hind, &#039;, &#039;,tk.toodekategooria)\nfrom deleted\ninner join toodekategooria tk\non deleted.toodekategooriaId=tk.toodekategooriaId;\n\n--kontroll\ndelete from toode where toodeId=5;\nselect * from toode\nselect * from logi\n\n--triger mis j\u00e4lgib update tabelisse\nCreate trigger toodeUuendamine\nON toode\nfor update\nas\nInsert into logi(kuupaev, kasutaja, andmed)\nselect\nGETDATE(),\nSYSTEM_USER,\nCONCAT(\n&#039;vanad: &#039;, deleted.toodenimetus, &#039;, &#039;, deleted.hind, &#039;, &#039;, tk1.toodekategooria,\n&#039; || uued:&#039;, inserted.toodenimetus, &#039;, &#039;, inserted.hind, &#039;, &#039;, tk2.toodekategooria)\nfrom deleted\ninner join inserted on deleted.toodeId=inserted.toodeId\ninner join toodekategooria tk1\non deleted.toodekategooriaId=tk1.toodekategooriaId\ninner join toodekategooria tk2\non inserted.toodekategooriaId=tk2.toodekategooriaId;\n \n --kontroll\nupdate toode set toodenimetus=&#039;teater&#039;, toodekategooriaID=1\nWhere toodeID=1\n\nselect * from toode\nselect * from logi\n\n\n--#1\ncreate trigger toodeLisamineJaKasutamine\non toode\nafter insert, delete\nas\nbegin\nset nocount on\ninsert into logi(kasutaja, kuupaev, andmed)\nselect\nSYSTEM_USER,\nGETDATE(),\nCONCAT(&#039;Lisatud: &#039;, inserted.toodenimetus, &#039;, &#039;, inserted.hind, &#039;, &#039;, tk.toodekategooria)\nfrom inserted\ninner join toodekategooria tk\non inserted.toodekategooriaId=tk.toodekategooriaId\nunion all\nselect\nSYSTEM_USER,\nGETDATE(),\nCONCAT(&#039;Kustutatud: &#039;, deleted.toodenimetus, &#039;, &#039;,deleted.hind, &#039;, &#039;, tk.toodekategooria)\nfrom deleted\ninner join toodekategooria tk\non deleted.toodekategooriaId=tk.toodekategooriaId\nend;\n\ndisable trigger toodeKustutamine on toode\ndisable trigger toodeLisamine on toode\n\ninsert into toode(toodeNimetus, hind, toodekategooriaID)\nvalues(&#039;kino&#039;, 2.50,1)\nselect * from toode\nselect * from logi\n\n\n<\/pre><\/div>\n\n\n<p>ulesanne forums<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\ncreate database videocardproducts\nuse videocardproducts\n\n--tabel videokaardkategooria loomine\ncreate table videokaardkategooria(\nvideokaardkategooriaId int not null primary key identity (1,1),\nvideokaardkategooria varchar(100) unique,\nkirjeldus text);\n\n--tabel videokaardid\ncreate table videokaardid(\nid int identity(1,1) primary key,\ntootja varchar(20),\nmudel varchar (50),\nkuupaev datetime,\nvideokaardkategooriaId int,\nforeign key (videokaardkategooriaId) references videokaardkategooria(videokaardkategooriaId)\n)\n\n--tabel logi\ncreate table logi(\nid int identity(1,1) not null primary key,\nkuupaev datetime,\nandmed varchar (200),\nkasutaja varchar (100),\n);\n\ninsert into videokaardkategooria(videokaardkategooria)\nvalues (&#039;Integreeritud&#039;);\nselect * from videokaardkategooria\n\n--trigger videokaardLisamine\ncreate trigger videokaardLisamine\non videokaardid\nfor insert\nas\ninsert into logi(kuupaev, kasutaja, andmed)\nselect\ngetdate(),\nSYSTEM_USER,\nconcat(&#039;Videokaard on lisatud: &#039;,inserted.mudel,&#039;, &#039;,inserted.tootja, &#039;, &#039;,vk.videokaardkategooria)\nfrom inserted\ninner join videokaardkategooria vk\non inserted.videokaardkategooriaId=vk.videokaardkategooriaId;\n\n--kontroll\ninsert into videokaardid(tootja,mudel,videokaardkategooriaId)\nvalues (&#039;AMD&#039;, &#039;RX9060&#039;,1);\nselect * from videokaardid\nselect * from logi\n\n--trigger videokaardKusutamine\ncreate trigger videokaardKusutamine\non videokaardid\nfor delete\nas\ninsert into logi(kuupaev, kasutaja, andmed)\nselect\ngetdate(),\nSYSTEM_USER,\nconcat(&#039;Kustutatud tabelist :&#039;,deleted.mudel,&#039;, &#039;,deleted.tootja, &#039;, &#039;,vk.videokaardkategooria)\nfrom deleted\ninner join videokaardkategooria vk\non deleted.videokaardkategooriaId=vk.videokaardkategooriaId;\n\n--kontroll\ndelete from videokaardid where id=2;\nselect * from videokaardid\nselect * from logi\n\n--Kaksik-trigger lisamise ja kustutamisega\ncreate trigger videokaardLisamineJaKasutamine\non videokaardid\nafter insert, delete\nas\nbegin\n  set nocount on;\n  insert into logi(kuupaev, kasutaja, andmed)\n  select\n    GETDATE(),\n    SYSTEM_USER,\n    CONCAT(&#039;Lisatud: &#039;, inserted.mudel, &#039;, &#039;, inserted.tootja, &#039;, &#039;, vk.videokaardkategooria)\n  from inserted\n  inner join videokaardkategooria vk\n    on inserted.videokaardkategooriaId = vk.videokaardkategooriaId\n  union all\n  select\n    GETDATE(),\n    SYSTEM_USER,\n    CONCAT(&#039;Kustutatud: &#039;, deleted.mudel, &#039;, &#039;, deleted.tootja, &#039;, &#039;, vk.videokaardkategooria)\n  from deleted\n  inner join videokaardkategooria vk\n    on deleted.videokaardkategooriaId = vk.videokaardkategooriaId;\nend;\n\n\n\n--kontroll\ndisable trigger videokaardLisamine on videokaardid\ndisable trigger videokaardKusutamine on videokaardid\n\ninsert into videokaardid(tootja, mudel,videokaardkategooriaId)\nvalues(&#039;NVIDIA NEW&#039;,&#039;RTX 2080&#039;,1)\nselect * from videokaardid\nselect * from logi\n<\/pre><\/div>\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\ncreate database kool\nuse kool\n\n--tabelid\nCREATE TABLE Opetaja (\nOpetajaID int NOT NULL,\nOpetajaNimi varchar(100),\nAine varchar(50),\nCONSTRAINT Opetaja_pk PRIMARY KEY (OpetajaID)\n);\n\nCREATE TABLE Klass (\nKlassID int NOT NULL,\nKlassNimi varchar(30),\nOpetaja_OpetajaID int,\nOpilasteArv int,\nCONSTRAINT Klass_pk PRIMARY KEY (KlassID)\n);\n\nCREATE TABLE Opilane (\nOpilaneID int NOT NULL,\nOpilaseNimi varchar(100),\nKlass_KlassID int NOT NULL,\nCONSTRAINT Opilane_pk PRIMARY KEY (OpilaneID)\n);\n\ncreate table logi(\nId int identity(1,1) primary key,\nkuupaev datetime,\ntegevus varchar(100),\nandmed varchar (200),\nkasutaja varchar(100)\n);\n\nINSERT INTO Opetaja (OpetajaID, OpetajaNimi, Aine)\nVALUES\n(1, &#039;Marina Oleinik&#039;, &#039;Mobiilrakendus&#039;),\n(2, &#039;Irina Merkulova&#039;, &#039;Andmebaasid&#039;),\n(3, &#039;Anton Buketov&#039;, &#039;Programmeerimine&#039;),\n(4, &#039;Ruslan Morris&#039;, &#039;Inglise Keel&#039;);\n\n\nINSERT INTO Klass (KlassID, KlassNimi, Opetaja_OpetajaID, OpilasteArv)\nVALUES\n(1, &#039;TARpv24&#039;, 2, 20),\n(2, &#039;TARpv23&#039;, 1, 18),\n(3, &#039;LOGITpv24&#039;, 3, 22),\n(4, &#039;LOGITpv23&#039;, 4, 19);\n\n\nINSERT INTO Opilane (OpilaneID, OpilaseNimi, Klass_KlassID)\nVALUES\n(1, &#039;Martin Rossakov&#039;, 1),\n(2, &#039;Mark Jurgen&#039;, 1),\n(3, &#039;Illia Blahun&#039;, 2),\n(4, &#039;Marek Lukk&#039;, 3);\n\n\nselect * from Klass\nselect * from Opetaja\nselect * from Opilane\n\n-- foreign keys\nALTER TABLE Klass ADD CONSTRAINT Klass_Opetaja\n    FOREIGN KEY (Opetaja_OpetajaID) REFERENCES Opetaja (OpetajaID);\n\nALTER TABLE Opilane ADD CONSTRAINT Opilane_Klass\n    FOREIGN KEY (Klass_KlassID) REFERENCES Klass (KlassID);\n\n\n--user\nGRANT SELECT, INSERT ON Klass to opilaneNimi;\nGRANT SELECT, INSERT ON Opetaja to opilaneNimi;\nGRANT SELECT, INSERT ON Opilane to opilaneNimi;\n\n--trigger delete\nCREATE TRIGGER KlassKustutamine\nON Klass\nFOR DELETE\nAS\nINSERT INTO Logi (kuupaev, tegevus, andmed, kasutaja)\nSELECT\nGETDATE(),\n&#039;Klassi kustutamine&#039;,\nCONCAT(&#039;Kustutati klass: nimi=&#039;, d.KlassNimi,&#039;, \u00f5petaja=&#039;, o.OpetajaNimi,&#039;, aine=&#039;, o.Aine,&#039;, \u00f5pilaste arv=&#039;, d.OpilasteArv),\nSYSTEM_USER\nFROM deleted d\nLEFT JOIN Opetaja o ON d.Opetaja_OpetajaID = o.OpetajaID;\n\n--trigger insert\nCREATE TRIGGER KlassLisamine\nON Klass\nFOR INSERT\nAS\nINSERT INTO Logi (kuupaev, tegevus, andmed, kasutaja)\nSELECT\nGETDATE(),\n&#039;Klassi lisamine&#039;,\nCONCAT(&#039;Lisati klass: nimi=&#039;, i.KlassNimi,&#039;, \u00f5petaja=&#039;, o.OpetajaNimi,&#039;, aine=&#039;, o.Aine,&#039;, \u00f5pilaste arv=&#039;, i.OpilasteArv),\nSYSTEM_USER\nFROM inserted i\nLEFT JOIN Opetaja o ON i.Opetaja_OpetajaID = o.OpetajaID;\n\n--kontroll\nINSERT INTO Klass (KlassID, KlassNimi, Opetaja_OpetajaID, OpilasteArv) \nVALUES (6,&#039;TARpv21&#039;, 2, 15);\nselect * from Klass\nselect * from logi\n\nDELETE FROM Klass WHERE KlassID = 5;\nselect * from Klass\nselect * from logi\n\n\n--procedure k\u00f5ik klassid ja nennde \u00f5pilased\nCREATE PROCEDURE klassidJaOpilased\n@opetaja_nimi NVARCHAR(50)\nAS\nBEGIN\n    SELECT \n        k.KlassNimi AS Klass,\n        o.OpilaseNimi AS Opilane\n    FROM Klass k\n    JOIN Opetaja t ON k.Opetaja_OpetajaID = t.OpetajaID\n    JOIN Opilane o ON o.Klass_KlassID = k.KlassID\n    WHERE t.OpetajaNimi = @opetaja_nimi;\nEND;\n\nEXEC klassidJaOpilased &#039;Irina Merkulova&#039;;\n\n--transaktsioon\nbegin transaction;\nsave transaction esimene;\nselect * from Opilane\ninsert into Opilane (OpilaneID, OpilaseNimi, Klass_KlassID)\nvalues (6, &#039;Nikita Orlenko&#039;, 6);\nselect * from Opilane\nrollback transaction esimene;\nselect* from Opilane\n\n--oma andmebaasi tegevus \/\/ uuendamine tabel Klass\nCREATE TRIGGER KlassUuendamine\nON Klass\nFOR UPDATE\nAS\nINSERT INTO Logi (kuupaev, tegevus, andmed, kasutaja)\nSELECT\nGETDATE(),\n&#039;Klassi uuendamine&#039;,\nCONCAT(&#039;Vana: klass=&#039;, d.KlassNimi,&#039;, \u00f5petaja=&#039;, tOld.OpetajaNimi,&#039;, aine=&#039;, tOld.Aine,&#039;, \u00f5pilaste arv=&#039;, d.OpilasteArv,\n&#039; \/ Uus: klass=&#039;, i.KlassNimi,&#039;, \u00f5petaja=&#039;, tNew.OpetajaNimi,&#039;, aine=&#039;, tNew.Aine,&#039;, \u00f5pilaste arv=&#039;, i.OpilasteArv),\nSYSTEM_USER\nFROM deleted d\nINNER JOIN inserted i ON d.KlassID = i.KlassID\nLEFT JOIN Opetaja tOld ON d.Opetaja_OpetajaID = tOld.OpetajaID\nLEFT JOIN Opetaja tNew ON i.Opetaja_OpetajaID = tNew.OpetajaID;\n\n--kontroll\nupdate Klass set OpilasteArv = 19\nwhere KlassID = 1;\nselect * from Klass\nselect * from logi\n\n\nuse kool\n\nselect * from Klass\nselect * from Opetaja\nselect * from Opilane\n\nINSERT INTO Opilane (OpilaneID, OpilaseNimi, Klass_KlassID)\nVALUES\n(5, &#039;Roman Zaitsev&#039;, 4);\n\nupdate Opilane set OpilaseNimi=&#039;Roman Test&#039; where OpilaneID=5 \n\ncreate table testkasutaja(\nid int identity(1,1) primary key,\ntest varchar(15),\n);\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Triger ( trigger \/ p\u00e4\u00e4stik ) &#8212; protsess, mille abil tema sisse kirjutatud tegevused automaatselt k\u00e4ivitatakse. ( INSERT,DELETE,UPDATE )\u0422\u0440\u0438\u0433\u0433\u0435\u0440 ( [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1131","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Triggerite loomine - Martin Rossakov portfolio \/ RU<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/martinrossakov24.thkit.ee\/wp\/ru\/triggerite-loomine\/\" \/>\n<meta property=\"og:locale\" content=\"ru_RU\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Triggerite loomine - Martin Rossakov portfolio \/ RU\" \/>\n<meta property=\"og:description\" content=\"Triger ( trigger \/ p\u00e4\u00e4stik ) &#8212; protsess, mille abil tema sisse kirjutatud tegevused automaatselt k\u00e4ivitatakse. ( INSERT,DELETE,UPDATE )\u0422\u0440\u0438\u0433\u0433\u0435\u0440 ( [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/martinrossakov24.thkit.ee\/wp\/ru\/triggerite-loomine\/\" \/>\n<meta property=\"og:site_name\" content=\"Martin Rossakov portfolio \/ RU\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-27T08:31:34+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f\" \/>\n\t<meta name=\"twitter:data1\" content=\"8 \u043c\u0438\u043d\u0443\u0442\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/martinrossakov24.thkit.ee\\\/wp\\\/ru\\\/triggerite-loomine\\\/\",\"url\":\"https:\\\/\\\/martinrossakov24.thkit.ee\\\/wp\\\/ru\\\/triggerite-loomine\\\/\",\"name\":\"Triggerite loomine - Martin Rossakov portfolio \\\/ RU\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/martinrossakov24.thkit.ee\\\/wp\\\/ru\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/martinrossakov24.thkit.ee\\\/wp\\\/ru\\\/triggerite-loomine\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/martinrossakov24.thkit.ee\\\/wp\\\/ru\\\/triggerite-loomine\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/mart1n2k.wordpress.com\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/1065bfe6-d052-4a97-ba40-69c4f13657b1.png?w=567\",\"datePublished\":\"2025-09-03T09:04:44+00:00\",\"dateModified\":\"2025-10-27T08:31:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/martinrossakov24.thkit.ee\\\/wp\\\/ru\\\/triggerite-loomine\\\/#breadcrumb\"},\"inLanguage\":\"ru-RU\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/martinrossakov24.thkit.ee\\\/wp\\\/ru\\\/triggerite-loomine\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ru-RU\",\"@id\":\"https:\\\/\\\/martinrossakov24.thkit.ee\\\/wp\\\/ru\\\/triggerite-loomine\\\/#primaryimage\",\"url\":\"https:\\\/\\\/mart1n2k.wordpress.com\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/1065bfe6-d052-4a97-ba40-69c4f13657b1.png?w=567\",\"contentUrl\":\"https:\\\/\\\/mart1n2k.wordpress.com\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/1065bfe6-d052-4a97-ba40-69c4f13657b1.png?w=567\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/martinrossakov24.thkit.ee\\\/wp\\\/ru\\\/triggerite-loomine\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/martinrossakov24.thkit.ee\\\/wp\\\/ru\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Triggerite loomine\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/martinrossakov24.thkit.ee\\\/wp\\\/ru\\\/#website\",\"url\":\"https:\\\/\\\/martinrossakov24.thkit.ee\\\/wp\\\/ru\\\/\",\"name\":\"Martin Rossakov portfolio \\\/ RU\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/martinrossakov24.thkit.ee\\\/wp\\\/ru\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ru-RU\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Triggerite loomine - Martin Rossakov portfolio \/ RU","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/martinrossakov24.thkit.ee\/wp\/ru\/triggerite-loomine\/","og_locale":"ru_RU","og_type":"article","og_title":"Triggerite loomine - Martin Rossakov portfolio \/ RU","og_description":"Triger ( trigger \/ p\u00e4\u00e4stik ) &#8212; protsess, mille abil tema sisse kirjutatud tegevused automaatselt k\u00e4ivitatakse. ( INSERT,DELETE,UPDATE )\u0422\u0440\u0438\u0433\u0433\u0435\u0440 ( [&hellip;]","og_url":"https:\/\/martinrossakov24.thkit.ee\/wp\/ru\/triggerite-loomine\/","og_site_name":"Martin Rossakov portfolio \/ RU","article_modified_time":"2025-10-27T08:31:34+00:00","twitter_card":"summary_large_image","twitter_misc":{"\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f":"8 \u043c\u0438\u043d\u0443\u0442"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/martinrossakov24.thkit.ee\/wp\/ru\/triggerite-loomine\/","url":"https:\/\/martinrossakov24.thkit.ee\/wp\/ru\/triggerite-loomine\/","name":"Triggerite loomine - Martin Rossakov portfolio \/ RU","isPartOf":{"@id":"https:\/\/martinrossakov24.thkit.ee\/wp\/ru\/#website"},"primaryImageOfPage":{"@id":"https:\/\/martinrossakov24.thkit.ee\/wp\/ru\/triggerite-loomine\/#primaryimage"},"image":{"@id":"https:\/\/martinrossakov24.thkit.ee\/wp\/ru\/triggerite-loomine\/#primaryimage"},"thumbnailUrl":"https:\/\/mart1n2k.wordpress.com\/wp-content\/uploads\/2025\/09\/1065bfe6-d052-4a97-ba40-69c4f13657b1.png?w=567","datePublished":"2025-09-03T09:04:44+00:00","dateModified":"2025-10-27T08:31:34+00:00","breadcrumb":{"@id":"https:\/\/martinrossakov24.thkit.ee\/wp\/ru\/triggerite-loomine\/#breadcrumb"},"inLanguage":"ru-RU","potentialAction":[{"@type":"ReadAction","target":["https:\/\/martinrossakov24.thkit.ee\/wp\/ru\/triggerite-loomine\/"]}]},{"@type":"ImageObject","inLanguage":"ru-RU","@id":"https:\/\/martinrossakov24.thkit.ee\/wp\/ru\/triggerite-loomine\/#primaryimage","url":"https:\/\/mart1n2k.wordpress.com\/wp-content\/uploads\/2025\/09\/1065bfe6-d052-4a97-ba40-69c4f13657b1.png?w=567","contentUrl":"https:\/\/mart1n2k.wordpress.com\/wp-content\/uploads\/2025\/09\/1065bfe6-d052-4a97-ba40-69c4f13657b1.png?w=567"},{"@type":"BreadcrumbList","@id":"https:\/\/martinrossakov24.thkit.ee\/wp\/ru\/triggerite-loomine\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/martinrossakov24.thkit.ee\/wp\/ru\/"},{"@type":"ListItem","position":2,"name":"Triggerite loomine"}]},{"@type":"WebSite","@id":"https:\/\/martinrossakov24.thkit.ee\/wp\/ru\/#website","url":"https:\/\/martinrossakov24.thkit.ee\/wp\/ru\/","name":"Martin Rossakov portfolio \/ RU","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/martinrossakov24.thkit.ee\/wp\/ru\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ru-RU"}]}},"_links":{"self":[{"href":"https:\/\/martinrossakov24.thkit.ee\/wp\/ru\/wp-json\/wp\/v2\/pages\/1131","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/martinrossakov24.thkit.ee\/wp\/ru\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/martinrossakov24.thkit.ee\/wp\/ru\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/martinrossakov24.thkit.ee\/wp\/ru\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/martinrossakov24.thkit.ee\/wp\/ru\/wp-json\/wp\/v2\/comments?post=1131"}],"version-history":[{"count":1,"href":"https:\/\/martinrossakov24.thkit.ee\/wp\/ru\/wp-json\/wp\/v2\/pages\/1131\/revisions"}],"predecessor-version":[{"id":1429,"href":"https:\/\/martinrossakov24.thkit.ee\/wp\/ru\/wp-json\/wp\/v2\/pages\/1131\/revisions\/1429"}],"wp:attachment":[{"href":"https:\/\/martinrossakov24.thkit.ee\/wp\/ru\/wp-json\/wp\/v2\/media?parent=1131"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}