PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да избегнем рекурсия в тригер за актуализация, който извършва актуализация?

Не използвайте UPDATE, използвайте BEFORE задейства и присвоява новата стойност:

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. Поточно репликация на PostgreSQL срещу логическа репликация

  2. Как да получите името на документ в Alfresco с SQL?

  3. Изключение в JPA при използване на семен файл за PostgreSQL

  4. Функцията XPath sum или fn:sum внедрена ли е в PostgreSQL XPath?

  5. Как да филтрирам json масив за всеки върнат ред?