Databasfunktioner och triggers
Kapsla in logik i Postgres-funktioner och automatisera reaktioner på dataändringar med triggers – allt anropbart från Supabase.
Databasfunktioner och triggers är en gratis lektion i Supabase som Backend as a Service på CoddyKit. Detta är lektion 3 av 3. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Supabase som Backend as a Service, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Supabase som Backend as a Service innehåller totalt 3 lektioner.
Logik i databasen
Med Postgres kan du lagra återanvändbar logik som funktioner och köra kod automatiskt när data ändras med hjälp av triggers. På så sätt hålls viktiga regler nära datan.
Vad är en databasfunktion?
En funktion är namngiven, återanvändbar SQL eller PL/pgSQL som returnerar ett värde. Du kan anropa den från frågor eller från Supabase-klienten via RPC.
Skriva en enkel funktion
Den här funktionen returnerar antalet aktiva användare.
create or replace function active_user_count()
returns integer
language sql
as 'select count(*)::int from users where active';Anropa den från Supabase
Använd rpc för att anropa en databasfunktion från klienten.
const { data, error } = await supabase
.rpc('active_user_count');
console.log(data);Funktioner med parametrar
Funktioner kan ta emot argument, vilket möjliggör parametriserad logik på serversidan.
create or replace function posts_by(author_id bigint)
returns setof posts
language sql
as 'select * from posts where user_id = author_id';Vad är en trigger?
En trigger kör automatiskt en funktion BEFORE eller AFTER en INSERT, UPDATE eller DELETE på en tabell.
En triggerfunktion
Triggerfunktioner returnerar trigger och kommer åt den nya raden via NEW.
create or replace function set_updated_at()
returns trigger
language plpgsql
as 'begin new.updated_at = now(); return new; end;';Koppla triggern
Koppla funktionen till en tabell och en händelse.
create trigger touch_updated
before update on posts
for each row
execute function set_updated_at();Vanliga användningsområden
Triggers passar utmärkt för:
- Automatisk tidsstämpelsättning
- Underhåll av denormaliserade antal
- Skapande av rader i granskningsloggar
- Skapande av en profilrad när en användare registrerar sig
Håll triggers lätta
Triggers körs i transaktionen, så tungt arbete gör varje skrivning långsammare. Flytta i stället långa uppgifter till Edge Functions eller köer.
function isLightweight(ms) { return ms < 10; }
console.log(isLightweight(4));Sätta ihop allt
Använd funktioner för återanvändbar, anropsbar logik och triggers för automatiska reaktioner på ändringar, samtidigt som triggerarbetet hålls litet och snabbt.
Snabbtest
Testa dina kunskaper om funktioner och triggers.
Sammanfattning
Du har lärt dig att skriva anropsbara databasfunktioner, anropa dem med rpc och automatisera logik med triggers som använder NEW, samtidigt som triggerarbetet hålls lätt.
Lär dig Supabase som Backend as a Service med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 11
- Lektioner
- 40
Vanliga frågor
Är lektionen ”Databasfunktioner och triggers” gratis?
Ja – hela texten till ”Databasfunktioner och triggers” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Supabase som Backend as a Service, kan Ni uppgradera till CoddyKit PRO. Kursen i Supabase som Backend as a Service innehåller totalt 3 lektioner.
Vad lär jag mig i ”Databasfunktioner och triggers”?
Kapsla in logik i Postgres-funktioner och automatisera reaktioner på dataändringar med triggers – allt anropbart från Supabase. Ni övar på Supabase som Backend as a Service med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Supabase som Backend as a Service?
Du behöver inga förkunskaper. Utbildningen i Supabase som Backend as a Service på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 3.
Hur lång tid tar lektionen ”Databasfunktioner och triggers”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Supabase som Backend as a Service-lektionen?
Ja. Varje Supabase som Backend as a Service-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Avancerade SQL-frågor och joins
- Databasindexering för bättre prestanda
- Databasfunktioner och triggers