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:00 | Erki Eessaar
Kuidas katsetada päringut, kui mul ei ole tabeleid, mille põhjal seda teha või ei ole õigust tabeleid luua? Ühise tabeli avaldise (common table expression) abil saab koostada päringus sisevaate (inline view), mille põhjal lause täita. Kõik see on üks näide. Järgnevalt katsetan numbrimärkidest koosnevate stringide sorteerimist.... PostgreSQLühine tabeli avaldisCTEVALUES lausepäringsisevaade 05.12.2025 09:26:14 | 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:40 | Erki Eessaar
Kuidas luua TI abil rakendusi, mis aitavad andmebaasi arendamisel? Google AI Stuudios saab luua rakendusi, mida samas keskkonnas käivitada. Järgnev näide põhineb GeminiäppTIAItehisintellektPlantUML 29.11.2025 18:14:27 | 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:56 | Erki Eessaar
Millal kasutada andmebaasis EAV disaini või JSONB tüüpi veergu? Analüüsime konkreetset näidet.Kontekst: Tegemist on PostgreSQL andmebaasiga, kus muuhulgas hakatakse hoidma andmeid keelemudelite kohta. See andmebaas on osa süsteemist, mis võimaldab teha andmebaaside suhtes eestikeelse... universaalne disainEAVJSONJSONBPostgreSQLandmebaasi disainEAVJSONBPostgreSQLpaindlikkusjõudlus 17.11.2025 11:28:32 | Erki Eessaar
Kas oleks võimalik (peaaegu) kogu andmebaasirakendus luua PostgreSQL baasil? Veidi provokatsioonilise pealkirjaga video: I replaced my entire tech stack with Postgres...Lühikokkuvõte mainitud vahenditest, millest palju... PostgreSQLtehnoloogiapinuJSONBpgvectorpg_cronpgApexPostgRESTveebirakendusedCYPEXPostgRESTpgvectorpgcryptoJSONBpg_cron 08.11.2025 15:53:09 | Erki Eessaar
Kas PostgreSQL andmebaasi tabelile EXCLUDE kitsenduse lisamine võib muuta mõne selle tabeli UNIQUE kitsenduse üleliigseks? Oletame, et PostgreSQL andmebaasis on tabel: Tootaja_projektis_osalemine (tootaja_projektis_id, alg_aeg, lopp_aeg, projekt_id, tootaja_id, roll_kood) Primaarvõti (tootaja_projektis_id) kitsenduspiirangconstraintexclusionduplikaatdubleerimineindeksPostgreSQLkitsendusedEXCLUDEUNIQUEdubleerimineoptimeerimine 01.11.2025 10:19:16 | Erki Eessaar
Kuidas katsetada SQLis päringuid ilma, et mul oleks tabeleid, mille põhjal seda teha? Kasutades lauses ühiseid tabeli avaldisi (common table expression) on võimalik päringu kontekstis koostada tabel, mille põhjal päringut täita.Näide: Oletame, et ma tahan teada, kas tingimus pikkus NOT IN (1... cteühine tabeli avaldistestimineVALUESDB Fiddlevirtuaalne tabelSQL 13.06.2025 14:22:48 | Erki Eessaar
Kas PostgreSQLis on andmebaasis andmemuudatuste tegemiseks jõudluse (töökiiruse poolest paremad) SQL keelsed või PL/pgSQL keelsed funktsioonid? Katsetuste järgi on PL/pgSQL keelsete funktsioonide jõudlus parem.Lõin katsetamiseks andmebaasi proc ja genereerisin sinna testandmed. Ühes tabelis oli üks miljon rida ja veel ühes viis miljonit rida. Seejärel lõin kaks funktsioo... PostgreSQLPL/pgSQLSQL funktsioonidjõudluspgbenchoptimeerimineprotseduursed keeled 01.12.2024 17:28:25 | Erki Eessaar