Xin*_*Xin 2 sql postgresql types
我想弄清楚Postgres在比较varchar时的作用char.
这是我的一个测试:
test=# select 'a'::character varying = 'a '::character;
?column?
----------
t
test=# select 'ab'::character varying = 'ab '::character;
?column?
----------
f
Run Code Online (Sandbox Code Playgroud)
对我来说这看起来像个错误.有谁知道这里发生了什么?这个主题有好的文件吗?
根本不是一个bug.
将字符串文字转换'ab '为character,这是你得到的:
a
Run Code Online (Sandbox Code Playgroud)
character没有长度说明符相当于character(1).
'a'::character(1)然后将强制为varchar(character varying)来测试平等'a'::varchar或'ab'::varchar和产量TRUE或FALSE分别.
基本上,几乎没有什么好的理由使用character 在所有.它是一种遗留类型,已经失去了它的实用性.只需使用text或varchar.