PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Confronta varchar con char

Non è affatto un bug.
Trasmissione della stringa letterale 'ab ' a character , ecco cosa ottieni:

a

Per documentazione:

character senza l'identificatore di lunghezza è equivalente a character(1) .

'a'::character(1) verrà quindi forzato a varchar (character varying ) per verificare l'uguaglianza con 'a'::varchar o 'ab'::varchar e restituisci TRUE o FALSE rispettivamente.

Fondamentalmente, non c'è quasi nessuna buona ragione per usare character per niente . È un tipo legacy che è sopravvissuto alla sua utilità. Usa semplicemente text o varchar .

  • Qualche aspetto negativo dell'utilizzo del tipo di dati "testo" per la memorizzazione di stringhe?