Enchaînement de requêtes et utilisation de variables
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 :
Code:
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 |
Lorsque j'essaie un équivalent dans la fenêtre Query de PGAdmin III, ça coince ! :(
Code:
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; |
=>
Citation:
ERROR: syntax error at or near "SELECT"
LIGNE 3 : SET id_personne = SELECT CURRVAL('te_personne_prs_prs_id_seq...
^
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. :(
Quelqu'un peut me dire comment rendre ça fonctionnel ?