Stocker des prix dans PostgreSQL, quel type de données ?

Un petit aide mémoire pour moi-même, mais peut-être que ça servira à quelques-un d’entre vous ! 

Pour stocker un prix dans PostgreSQL il faut utiliser le type de données (datatype) : 

NUMERIC(precision, scale)

En pratique, par exemple : numeric(7,2) permettra de stocker un prix jusqu’à 99999.99. Il y a donc 7 digits au maximum (precision) et 2 après la virgule. PostgreSQL fera un arrondi de tout chiffre pour stocker uniquement 2 chiffres après la virgule.

Pour l’exemple, 135.784 a une « precision » de 6 et un « scale » de 3

Si le prix est supérieur, alors PostgreSQL retourne une erreur du type : 

ERROR:  numeric field overflow
DETAIL:  A field with precision 5, scale 2 must round to an absolute value less than 10^3.

4 commentaires

  1. Je n’ai jamais été très habile avec ce genre de langage et je ne le suis toujours pas en ce moment. Toutefois, j’aimerais bien avoir des bases pour ne pas demander à autrui à chaque fois.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *