Bonjour,
Je suis en train d'écrire un billet de blog sur la gestion des erreurs et exceptions dans une procédure SQL (MySQL et PostgreSQL) et je suis confronté à un petit souci...
En MySQL, dans l'onglet SQL de phpMyAdmin, je peux faire ceci :
Lorsque j'essaie un équivalent dans la fenêtre Query de PGAdmin III, ça coince !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 -- Cas normal : Insertion d'une personne puis utilisation de son identifiant pour l'appel de la procédure INSERT INTO te_personne_prs (prs_nom, prs_prenom, prs_date_naissance) VALUES ('Bellucci', 'Monica', '1964-09-30'); SET @id_personne = LAST_INSERT_ID(); CALL pi_ajout_utilisateur (@id_personne, NULL, NULL, NULL, 'mbellucci', 'Son_Pass'); SELECT @id_personne; -- > @id_personne = 2 => OK
=>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 INSERT INTO te_personne_prs (prs_nom, prs_prenom, prs_date_naissance) VALUES ('Bellucci', 'Monica', '1964-09-30'); SET id_personne = SELECT CURRVAL('te_personne_prs_prs_id_seq'); SELECT pi_ajout_utilisateur (id_personne, NULL, NULL, NULL, 'mbellucci', 'Son_Pass'); SELECT id_personne;
J'ai essayé diverse choses, comme un DECLARE id_personne INTEGER; avant la première requête mais c'est le INTEGER qui ne lui a pas plu, ou bien un SELECT CURRVAL('te_personne_prs_prs_id_seq') into id_personne sans plus de succès.ERROR: syntax error at or near "SELECT"
LIGNE 3 : SET id_personne = SELECT CURRVAL('te_personne_prs_prs_id_seq...
^
Quelqu'un peut me dire comment rendre ça fonctionnel ?
Partager