considerando che in caso di update:
1- non devo aggiornare tutti i campi
2- tabella_id_seq non si deve incrementare
con le mie poche conoscenze, sono arrivato a questa funzione:
DECLARE
contatore int4;
BEGIN
UPDATE tabella SET
campo1=NEW.campo1,
campo2=NEW.campo2,
WHERE campo3=NEW.campo3
IF FOUND THEN
SELECT INTO contatore nextval('tabella_id_seq');
contatore := contatore-1;
SELECT SETVAL ('tabella_id_seq',contatore,false);
RETURN NULL;
ELSE
RETURN NEW;
END IF;
END;
a cui segue:
CREATE TRIGGER insert_update_tabella BEFORE INSERT ON tabella
FOR EACH ROW EXECUTE PROCEDURE insert_update_tabella()
a questo punto la prima domanda, in poche parole...questo codice fa' schifo?
c'e' un sistema migliore (magari anche piu' elegante) per mantenere i
due requisiti ?
come seconda domanda,
un consiglio per un buon libro in italiano su PSQL. ;-)
Ciao e grazie per l'attenzione.