Auto Register XAMPP

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

12345678910111213141516171819202122232425262728293031323334353637Createdatabasetriger3tabelid;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

123456789101112SELECT* 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

1droptriggerlinnaLisamine;

Uuesti teeme triger

12345678910CREATETRIGGERlinnaLisamineONlinnadFORINSERTASINSERTINTOlogi(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;

1ALTERTABLElogi ADDkasutaka varchar(30);

Nüüd triger

1234567891011CREATETRIGGERlinnaKustutamineONlinnadFORDELETEASINSERTINTOlogi(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:

1234567891011CREATETRIGGERlinnaKustutamineONlinnadFORDELETEASINSERTINTOlogi(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

123456789101112131415CREATETRIGGERlinnaUuendamineONlinnadFORUPDATEASINSERTINTOlogi(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:

123456789101112131415CREATETRIGGERlinnaUuendamineONlinnadFORUPDATEASINSERTINTOlogi(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