sql >> Databasteknik >  >> RDS >> PostgreSQL

Postgres triggerfunktion

Först och främst behöver du ett före trigger om du vill ändra ett värde för raden som uppdateras (eller infogas)

För det andra behöver du inte "uppdatera" tabellen, bara tilldela det nya värdet till den NYA raden:

create or replace function pardota_masina_veikals() 
RETURNS trigger 
AS 
$pardota_masina$
begin
  IF NEW.sold=true THEN
    NEW.id_shop = NULL;
 END IF;
RETURN NEW;
END;
$pardota_masina$ 
LANGUAGE plpgsql;

CREATE TRIGGER pardota_masina_nevar_but_veikala 
   BEFORE INSERT OR UPDATE ON masinas 
   FOR EACH ROW EXECUTE PROCEDURE pardota_masina_veikals();



  1. Finns det någon anledning att oroa sig för kolumnordningen i en tabell?

  2. ORA-00942:tabell eller vy finns inte ... kan jag få mer information?

  3. Använda `rand()` med `having`

  4. gem install pg fungerar inte på OSX Lion