Auto Register – kodutöö
Alustame, DataBase – autoregister

Tehtud tablid, ja kontrollitud kõik tabled

Alustame teha trigerid

Esemene triger lisamine

Kontrollime:

Esemene admed on lisatatud
Teeme triger UPDATE (Minu mõtte teha aasta uuendus)

Proviime muudata aasta (kontrollime)

Vimane triger emaldamine

Nüüd kontrollime, emaldame üks andme:

Lisage seotud tabel ja muutke päästikut kahe tabeli põhjal
Ühenduse loomine
Create uus tabel

Lisame paar andmed

autoadmed lisame veel markID (fk)

Lisame veel markID

Teeme seoste vaade


Kontrollin et kõik on korras

Proovime vahetada triger lisamine

ja ei tööta 🙂
Litsin vigu

Nüüd kontrollime:

Kõik ilusti töötab
UPDATE kahe seotud tabeli põhjal
Muudame meie aastauuendus –> nüüd meil salvestab logitabelis –> vana/uus muudel, vana/uus aasta ja vana/uus –> mark mis võtab anded teisel tabelis

Kontrollin


Korekterin, sest tahan ilusam näide:

Nüüd mulle meildib kuidas näitab andmed

SQL server
| 12345678910111213141516171819202122232425262728293031323334353637 | Createdatabasetriger3tabelid;use triger3tabelid;Createtablelinnad(linnID intidentity(1,1) PRIMARYKEY,linnanimi varchar(15),rahvaarv int);Createtablelogi(id intidentity(1,1) PRIMARYKEY,aeg DATETIME,toiming varchar(100),andmed varchar(200));CREATETABLEmaakond( maakondID intPrimaryKEYidentity(1,1), maakond varchar(100) UNIQUE, pindala int); INSERTINTOmaakond(maakond)VALUES('Harjumaa');INSERTINTOmaakond(maakond)VALUES('Pärnumaa');SELECT* FROMmaakondALTERTABLElinnad ADDmaakondID int;ALTERTABLElinnad ADDCONSTRAINTfk_maakondFOREIGNKEY(maakondID) Referencesmaakond(maakondID) SELECT* FROMlinnad;SELECT* FROMmaakond;INSERTINTOlinnad(linnanimi, rahvaarv, maakondID)Values('Tallinn', 600000, 1) |
Trigerid –> LISAMINE
| 123456789101112 | SELECT* FROMlogi;CREATETRIGGERlinnaLisamineONlinnadFORINSERTASINSERTINTOlogi(aeg, toiming, andmed)SELECTGETDATE(),'on tehtud INSERT',CONCAT(m.maakond, ' linn ', l.linnanimi, ', ',l.rahvaarv)FROMlinnad lINNERJOINmaakond m ONm.maakondID=l.maakondID; |
Nüüd kontrollime, ebaõnnestus, emaldame triger
| 1 | droptriggerlinnaLisamine; |
Uuesti teeme triger
| 12345678910 | CREATETRIGGERlinnaLisamineONlinnadFORINSERTASINSERTINTOlogi(aeg, toiming, andmed)SELECTGETDATE(),'on tehtud INSERT',CONCAT(m.maakond, ' linn ', inserted.linnanimi, ', ',inserted.rahvaarv)FROMinsertedINNERJOINmaakond m ONm.maakondID=inserted.maakondID; |
Vahetame l. (linnad) –> panime inserted.
siis peab näidata õigesti. Kontrollime
Puhastame tabel logi, ja siis teeme insert
| 1234567 | -- puhasta logi tabelDELETEFROMlogi;INSERTINTOlinnad(linnanimi, rahvaarv, maakondID)Values('Maardu', 50000, 1)SELECT* FROMlinnad;SELECT* FROMlogi; |
TÖÖÖTAB

Teeme triger emaldamine:
Teeme uus kasutaja;
| 1 | ALTERTABLElogi ADDkasutaka varchar(30); |
Nüüd triger
| 1234567891011 | CREATETRIGGERlinnaKustutamineONlinnadFORDELETEASINSERTINTOlogi(aeg, toiming, andmed, kasutaka)SELECTGETDATE(),'on tehtud INSERT',CONCAT(m.maakond, ' linn ', deleted.linnanimi, ', ',deleted.rahvaarv),SUSER_NAME()FROMdeletedINNERJOINmaakond m ONm.maakondID=deleted.maakondID; |
Kontrollime:
| 1234567891011 | CREATETRIGGERlinnaKustutamineONlinnadFORDELETEASINSERTINTOlogi(aeg, toiming, andmed, kasutaka)SELECTGETDATE(),'on tehtud DELETE',CONCAT(m.maakond, ' linn ', deleted.linnanimi, ', ',deleted.rahvaarv),SUSER_NAME()FROMdeletedINNERJOINmaakond m ONm.maakondID=deleted.maakondID; |

Triger Uuendamine
| 123456789101112131415 | CREATETRIGGERlinnaUuendamineONlinnadFORUPDATEASINSERTINTOlogi(aeg, toiming, andmed, kasutaka)SELECTGETDATE(),'on tehtud UPDATE',CONCAT('vanad andmed ', m1.maakond, ' linn ', deleted.linnanimi, ', ',deleted.rahvaarv,'uued andmed ', m2.maakond, ' linn ', inserted.linnanimi, ', ',inserted.rahvaarv),SUSER_NAME()FROMdeletedINNERJOINinserted ONdeleted.linnID=inserted.linnIDINNERJOINmaakond m1 ONm1.maakondID=deleted.maakondIDINNERJOINmaakond m2 ONm2.maakondID=inserted.maakondID; |
Kontrollime:
| 123456789101112131415 | CREATETRIGGERlinnaUuendamineONlinnadFORUPDATEASINSERTINTOlogi(aeg, toiming, andmed, kasutaka)SELECTGETDATE(),'on tehtud UPDATE',CONCAT('vanad andmed ', m1.maakond, ' linn ', deleted.linnanimi, ', ',deleted.rahvaarv,'uued andmed ', m2.maakond, ' linn ', inserted.linnanimi, ', ',inserted.rahvaarv),SUSER_NAME()FROMdeletedINNERJOINinserted ONdeleted.linnID=inserted.linnIDINNERJOINmaakond m1 ONm1.maakondID=deleted.maakondIDINNERJOINmaakond m2 ONm2.maakondID=inserted.maakondID; |

XSAMP
Trigeri Uuendus


