sql >> Databasteknik >  >> RDS >> PostgreSQL

PostgreSQL:Söker efter NYTT och GAMLT i en funktion för en trigger

Det vanliga tillvägagångssättet för att få en triggerfunktion att göra olika saker beroende på hur triggern avfyrades är att kontrollera triggerfunktionen genom 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;

Orelaterat, men:språknamnet är en identifierare. Citera det inte med enstaka citattecken.



  1. Hur kan jag hitta ÄGAREN till ett objekt i Oracle?

  2. Skillnaden mellan UNIX_TIMESTAMP och NOW() i MySQL

  3. 8000 uppdateringar per sekund med mysql

  4. PostgreSQL 9.4 - Använd anpassad operator i EXCLUDE-begränsningen