PostgreSQL 中位和布尔数据类型的区别
Posted
技术标签:
【中文标题】PostgreSQL 中位和布尔数据类型的区别【英文标题】:Difference between Bit and Boolean datatypes in PostgreSQL 【发布时间】:2018-02-14 19:06:18 【问题描述】:我是 PostgreSQL 新手。在数据库中创建表时我有疑问。谁能澄清bit
和boolean
数据类型之间的区别?
【问题讨论】:
很多关于这个主题的帖子。你可以谷歌你的标题,你会找到一些答案。其他 RDBMS 的答案应该和 postgreSQL 一样好 【参考方案1】:bit
仅存储数字 0
和 1
(或 null
)。
boolean
仅存储 true
和 false
(或 null
)。数字 (0, 1) 不是布尔值。布尔值可以在任何需要布尔 表达式 的地方使用。所以你可以例如这样做:
where is_active
需要将位列与某物进行比较:
where a_bit_column = 0
(a_bit_column = 0
的结果是布尔值)
与某些 DBMS 的想法相反,表达式 where 0
或 where 1
是不是有效的布尔表达式。
【讨论】:
因为,我是新学习postgres,你能分享一下我们应该在什么情况下使用bit over boolean?有什么注意事项吗? @mehul9595 Postgres Hero Erwin 的另一个好答案:dba.stackexchange.com/a/156851/49113以上是关于PostgreSQL 中位和布尔数据类型的区别的主要内容,如果未能解决你的问题,请参考以下文章
BIT(BOOL)、BYTE、WORD、DWORD,这四个类型数据在位数上有啥区别