Mis vahe on GENERATED ALWAYS AS IDENTIY ja GENERATED BY DEFAULT AS IDENTITY ja kumba nendest kasutada? Neid kasutatakse surrogaatvõtmete realiseerimiseks. Need võimaldavad tabeli veeru korral määrata, et tegemist on identiteedi veeruga. Selle määramise tulemusel loob andmebaasisüsteem automaatselt sisemise arvujada generaatori ja seob veeruga. Kui kas... PostgreSQLidentiteedi veergsurrogaatvõtiarvujada generaatorserial 26.12.2025 14:16 | Erki Eessaar
Kuidas vältida konkurentsiprobleeme teise tabeli andmete kontrollimisel? Kui andmebaasioperatsiooni lepingus on näiteks kirjas eeltingimus, et uus kauba seisund peab olema aktiivne, siis selle eeltingimuse täidetust saab kontrollida operatsiooni käigus. Eelistada tuleks EXISTS alampäringut, kus on määratud FO... PostgreSQLOraclelukustaminejagatud lukkeksklusiivne lukkFOR UPDATEFOR SHAREpgbench 09.12.2025 19:24 | Erki Eessaar
Kumb on parem - kas trigeri käivitamise piiramine WHEN klausli abil või IF lausete kasutamine trigeri funktsioonis? Kõigepealt käsitlen jõudluse aspekti. PostgreSQL 18 (ja ka varasemate versioonide) puhul on teooria selline: WHEN klausel: Kontroll toimub enne trigeri protseduuri (funktsiooni) väljakutsumist. Kui tingimus on v... PostgreSQLtrigerWHEN klauselIF lausePL/pgSQLpgbenchjõudlushallatavusGemini 01.12.2025 14:44 | Erki Eessaar
Kui kontseptuaalses andmemudelis on üldistusseosed, siis kas neid võiks PostgreSQL andmebaasis realiseerida kasutades tabelite pärimist? See pole soovitav pärimise kaudu tabelite loomise tehniliste piirangute tõttu. Vaatame näidet. Iga isik on mingis täpselt ühes seisundis. Isik võib olla klient või töötaja. Võib olla isikuid, kes on nii klient kui ... PostgreSQLINHERITSpärimineüldistusseosedobjekt-relatsiooniline 22.11.2025 17:25 | Erki Eessaar
Kuidas luua TI abil interaktiivseid õpinäiteid? Üheks strateegiaks on paluda genereerida keelemudelil väike interaktiivne näide, mis oleks üks html fail ja kus võib kasutada HTMLi, CSSi, jQueryt, JavaScripti ja Bootstrapi. Sellise lehe vaatamiseks piisab, kui see html fail kettale salvestada ... AITIpromptviiptehisintellektGeminiõppematerjalidHTMLJavaScriptinteraktiivsus 14.11.2025 13:48 | Erki Eessaar
Kuidas SQLite korral realiseerida klassifikaatorite tabeleid, kus on kood ja nimetus? Koodi peaks sisestama inimkasutaja, mitte genereerima süsteem. Katsetasin seda koodi DB Fiddle keskkonnas. CREATE TABLE Tellimuse_seisundi_liik (tellimuse_seisundi_liik_kood INTEGER NOT NULL,... primaarvõtiesmasvõtiarvujada generaatorsurrogaatvõtiSQLiteklassifikaatorautomaatne väärtuskood 03.05.2025 11:26 | Erki Eessaar
Mis probleem on (PostgreSQL näitel) veeru deklaratsiooniga: registr_aeg TIMESTAMP NOT NULL DEFAULT LOCALTIMESTAMP(0) SELECT LOCALTIMESTAMP; Tagastab hetke kuupäeva, kellaaja ja sekundi murdosad kuue koha täpsusega. Funktsiooni väljakutses saab määrata, kui täpselt või kas üldse sekundi murdosasid... PostgreSQLTIMESTAMPLOCALTIMESTAMPandmekvaliteetandmetüübidsekundi murdosadvaikeväärtus 21.02.2025 09:18 | Erki Eessaar
Kuidas tagada andmebaasioperatsiooni realiseerivas rutiinis, et operatsiooni järeltingimused saavutatakse vaid siis, kui kõik eeltingimused on täidetud? Lepingprojekteerimise (design by contract) kohaselt kirjeldatakse tarkvaraelement kasutades eeltingimusi, järeltingimus... lepingprojekteerimineeeltingimusedjäreltingimusedinvariandidtrigeridkitsendusedrutiinid 21.12.2024 19:25 | Erki Eessaar
Kas CHECK kitsendustes saab kasutada mittedeterministlikke funktsioone? Deterministlik funktsioon tagastab samade argumentidega (sisendandmetega) alati samasuguse väärtuse. Mittedeterministlik funktsioon võib tagastada samade argumentidega erinevatel ajahetkedel erineva tulemuse. Mittedeterministlikud funktsioonid on nä... CHECK kitsendusdeterministlik funktsioonCURRENT_DATESQL standardandmete terviklikkusandmebaasisüsteemidretrospektiivne 22.11.2024 14:57 | Erki Eessaar
Kuidas kustutada korraga mitu tabeliga seotud kitsendust? See on hea näide, kuidas SQLi dialekt e mägimurrak erineb erinevates andmebaasisüsteemides detailide poolest. Järgnev katsetus tehti keskkondades DB Fi... kitsenduste kustutamineALTER TABLESQL süntaksDDLandmebaasisüsteemidporditavusDROP CONSTRAINT 14.11.2024 11:52 | Erki Eessaar