sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL:controleren op NIEUW en OUD in een functie voor een trigger

De gebruikelijke benadering om een ​​triggerfunctie verschillende dingen te laten doen, afhankelijk van hoe de trigger is geactiveerd, is door de triggerbewerking te controleren via 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;

Niet gerelateerd, maar:de taalnaam is een identifier. Citeer het niet met enkele aanhalingstekens.



  1. PayPal POST-gegevens na succesvolle betaling

  2. Onder welke omstandigheden zou je willen dat Rails wordt ingesteld om NIET opnieuw verbinding te maken met MYSQL

  3. Ruby, Rails:mysql2 juweeltje, gebruikt iemand dit juweeltje? Is het stabiel?

  4. slecht argument #1 tot 'ipairs' (tabel verwacht, kreeg boolean)