[PHP-PostgresSQL] Comment récupérer l'index d'insertion?

Comment récupérer l'index d'insertion? [PHP-PostgresSQL] - PHP - Programmation

Marsh Posté le 31-01-2004 à 23:10:30    

Dans la doc de Postgres, j'ai trouvé comme info que l'équivalent aux colones autoincrément sont les colones de type serial et bigserial .
Il est aussi indiqué (si j'ai bien saisie) que pour récupérer l'index de la dernière insertion effectué, il fallait utiliser la fonction pgsql nomé "nextval" ....
(info trouvé à l'adresse http://www.postgresql.org/docs/7.4 [...] YPE-SERIAL )
 
 
Mais en php, on fait comment pour exécuter cette fonction là? J'ai ni trouvé de fonction php qui retourne directement la valeur attendus, ni de fonction php pour exécuter des fonctions pgsql.
 
PS : Me renvoyez pas à la doc php de nexen, j'en viens.


Message édité par omega2 le 31-01-2004 à 23:12:49
Reply

Marsh Posté le 31-01-2004 à 23:10:30   

Reply

Marsh Posté le 31-01-2004 à 23:34:08    

alors, on va reprendre dans l'ordre:
 
- les auto-increment sont effectivement des colonnes qui contiennent un serial ou un bigserial. En réalité, un auto-incrément crée deux choses, une colonne et une séquence. Cette suite porte le nom complet de la colonne suffixé de "_idx"
- nextval permet de donner la valeur suivante de la séquence, c'est d'ailleur cette fonction qui est appellée implicitement dans les colonnes auto-incrémentées.
- currval permet de donner la valeur actuelle de la séquence, et donc de connaitre la valeur du dernier élément inséré. Cependant, cette fonction ne peut pas être appellée avant que la fonction nextval n'aie été appellée une première fois dans la session.
- Pour connaitre la valeur de l'auto-incrément, il suffit donc de faire un SELECT currval("nom_de_la_sequence" );

Reply

Marsh Posté le 01-02-2004 à 00:19:10    

Cool, t'es mon sauveur gizmo.
Par contre, ca va être moins facile à faire (mais potenciellement plus puissant) qu'avec mysql visiblement.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed