PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Comparar varchar com char


Não é um bug.
Convertendo a string literal 'ab ' para character , Isto é o que você recebe:
a

Por documentação:

character sem especificador de comprimento é equivalente a character(1) .

'a'::character(1) será então forçado a varchar (character varying ) para testar a igualdade com 'a'::varchar ou 'ab'::varchar e produzir TRUE ou FALSE respectivamente.

Basicamente, não há nenhuma boa razão para usar character tudo . É um tipo de legado que sobreviveu à sua utilidade. Basta usar text ou varchar .
  • Alguma desvantagem de usar o tipo de dados "texto" para armazenar strings?