Bonjour,

je n'ai pas l'habitude d'utiliser PostreSQL et je cherche le moyen de faire l'équivalent d'un autoincremente. J'ai cherché sur internet et j'ai vu plusieurs possibilité (en passant à chaque fois par un trigger). Des fois il est marqué de passer par une fonction et des fois par une sequence. Quelle est la meilleure façon de faire ?


Perso je pense que c'est par une sequence mais je n'ai pas trouvé de code expliquant comment faire.

J'ai bien trouvé ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE FUNCTION gen_cle_client () RETURNS OPAQUE AS 
'
	DECLARE
		nocli integer;
	BEGIN 
		select into nocli max(no_client) from client;
		IF nocli ISNULL THEN
			nocli:=0;
		END IF;
		NEW.no_client:=nocli+1;
		RETURN NEW;
	END; 
' 
LANGUAGE 'plpgsql';
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
CREATE TRIGGER trig_bef_ins_client BEFORE INSERT ON client 
	FOR EACH ROW 
	EXECUTE PROCEDURE gen_cle_client();
mais je n'ai pas le language 'plpgsql' de déclaré. Je souhaiterai faire la même chose avec le language 'sql'. Pouvez-vous m'aider ?

Merci

PoichOU