Quand on programme une interface, les champs du formulaire possèdent généralement certaines valeurs par défaut qu'on remplit pour éviter à l'utilisateur d'avoir à les saisir. Toutefois, il peut écraser les valeurs pour les remplacer par ce qui lui convient le mieux.
Souvent, on indique une valeur par défaut au niveau du champ d'une table de la base de données. Si aucune valeur n'est fournie, la valeur indiquée dans la définition de la table sera utilisé pour compléter l'insertion.
J'ai remarqué une tendance en programmation à indiquer une valeur dans le champ de la table et la définir à nouveau dans le champ de saisie du formulaire. Ce qui fait que si la valeur par défaut change, on est obligé de repasser aux deux endroits pour faire l'ajustement, alors qu'on peut l'obtenir par programmation.
Pour connaître la valeur par défaut définie au niveau de la colonne d'une table PostgreSQL et la charger dans le formulaire, on peut utiliser la requête suivante :
SELECT adsrc as default_valueEn utilisant ce moyen pratique, on s'assure qu'il n'y aura pas d'oubli lors des modifications futures. Cependant, il faut avouer que c'est légèrement moins performant car on doit exécuter une requête SQL supplémentaire pour l'obtenir. Je ne recommanderais pas de le faire systématiquement pour tous les champs mais parfois, ç'en vaut le coût.
FROM pg_attribute att
INNER JOIN pg_attrdef def ON att.attrelid = def.adrelid AND att.attnum = def.adnum
INNER JOIN pg_class p ON p.oid = att.attrelid
WHERE p.relname = 'table_name'
AND att.attname = 'field_name'