PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comparer varchar avec char

Ce n'est pas du tout un bogue.
Transformation de la chaîne littérale 'ab ' à character , voici ce que vous obtenez :

a

Par documentation :

character sans spécificateur de longueur est équivalent à character(1) .

'a'::character(1) sera alors contraint à varchar (character varying ) pour tester l'égalité avec 'a'::varchar ou 'ab'::varchar et donne TRUE ou FALSE respectivement.

Fondamentalement, il n'y a pratiquement aucune bonne raison d'utiliser character du tout . C'est un type hérité qui a perdu son utilité. Utilisez simplement text ou varchar .

  • Y a-t-il des inconvénients à utiliser le type de données "texte" pour stocker des chaînes ?