J'ai écrit cette fonction et ce déclencheur:Trigger de mettre à jour une colonne sur la mise à jour
CREATE OR REPLACE FUNCTION test4() RETURNS TRIGGER AS $BODY$
BEGIN
UPDATE "cf"
SET vol=(area*alt);
RETURN null;
END;
$BODY$
LANGUAGE plpgsql
déclencheur
CREATE TRIGGER trig_upd
AFTER OR UPDATE ON "cf"
FOR EACH ROW
EXECUTE PROCEDURE test4();
J'ai testé ma fonction et il est ok. J'ai donc créé le trigger, mais je ne peux pas insérer de valeur dans la table "cf" car le système plante.
s'il vous plaît donner quelques détails sur il se bloque –
'OU APRÈS update'? Peut-être que vous voulez 'AFTER INSERT OR UPDATE' à la place. - Vous devriez utiliser l'enregistrement ['NEW'] (https://www.postgresql.org/docs/current/static/plpgsql-trigger.html), au lieu de' UPDATE' sur toute la table. (sous sa forme actuelle, votre déclencheur appelle une boucle infinie et à cause de 'RETURN null' il révoquerait un insert réel quand la table est vide - et il n'y a pas de boucle infinie) – pozs
Pourquoi mettez-vous à jour toutes les lignes ** cette table chaque fois qu'une seule ligne est mise à jour? –