PostgreSQL中Bit和Boolean数据类型的区别

use*_*343 6 postgresql sqldatatypes

我是PostgreSQL的新手.我在数据库中创建表时有疑问.任何人都可以澄清bitboolean数据类型之间的区别吗?

a_h*_*ame 10

A bit只存储数字01(或null).

boolean只存储truefalse(或null).数字(0,1)不是布尔值.布尔值可以在预期的布尔表达式的任何位置使用.所以你可以这样做:

where is_active 
Run Code Online (Sandbox Code Playgroud)

需要将位列与某些内容进行比较:

where a_bit_column = 0
Run Code Online (Sandbox Code Playgroud)

(结果a_bit_column = 0是布尔值)


相反的是一些什么DBMS认为,表达where 0或者where 1不是有效的布尔表达式.

  • @mehul9595 Postgres Hero Erwin 提供了另一个很好的答案:https://dba.stackexchange.com/a/156851/49113 (3认同)