PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak uniknąć rekursji w wyzwalaczu aktualizacji, który wykonuje aktualizację?

Nie używaj UPDATE, użyj BEFORE wyzwalacz i przypisz nową wartość:

CREATE OR REPLACE FUNCTION vat_total_sum() RETURNS TRIGGER AS $$
BEGIN
  new.vat_total_sum := NEW.vat_sum / 100 * NEW.vat_percent; 
  RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER vat_total_sum 
   BEFORE INSERT OR UPDATE ON goods
   FOR EACH ROW EXECUTE PROCEDURE vat_total_sum();



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dodane rekordy bazy danych są usuwane po ponownym uruchomieniu aplikacji (heroku/SQLAlchemy)

  2. postgresql 9.5:próba podzielenia ciągu na dwa pola na podstawie spacji

  3. Eksportuj określone wiersze z tabeli PostgreSQL jako skrypt INSERT SQL

  4. Jak utworzyć nazwane partycje okien (aliasy) w PostgreSQL?

  5. Ładowanie spakowanego pliku CSV (nazwapliku.csv.gz) do tabeli PostgreSQL