sql >> Database teknologi >  >> RDS >> PostgreSQL

PostgreSQL:Tjek efter NYT og GAMLT i en funktion for en trigger

Den sædvanlige tilgang til at få en triggerfunktion til at gøre forskellige ting, afhængigt af hvordan triggeren blev udløst, er at kontrollere triggerfunktionen gennem TG_OP

CREATE OR REPLACE FUNCTION update_table_count()
RETURNS trigger AS
$$
DECLARE 
  updatecount INT;
BEGIN
  if tg_op = 'UPDATE' then 
    select count(*) into updatecount from source_table where id = new.id;
    update dest_table set count=updatecount where id = new.id;
  elsif tg_op = 'DELETE' then 
    ... do something else
  end if;
  RETURN NEW;
END;
$$
LANGUAGE plpgsql;

Ikke relateret, men:sprognavnet er en identifikator. Citer det ikke med enkelte anførselstegn.



  1. Sådan fjerner du en primær nøgle i SQL

  2. Er inkrementering af et felt i MySQL atomart?

  3. Flere fremmednøgler til samme tabel Gas Orm

  4. Forstå lagringsstørrelser for MySQL TEXT-datatyper