0

我们有 2 台服务器,它们的代码相同。在其中一个表上的询问返回 t/f 为布尔真/假,而在另一个上它返回 0/1。你知道为什么会这样吗?也许是 yii 设置或服务器设置?

4

1 回答 1

0

首先是一些背景。

许多 RDBMS 不支持 bool 类型,因此人们为此使用非常小的 int 字段。PostgreSQL 支持具有三个值的 bool 类型: true、、falsenull(或未知)。

从两台服务器都是 PostgreSQL 的问题来看,这并不是 100% 清楚的。如果一个是 PostgreSQL 而一个不是,人们会期待这种行为,所以这是首先要注意的事情。然而,即使两者都是 PostgreSQL,数据库设计人员也不会闻所未闻,设计一组表以使用 smallints 或 bits,然后再更改为 bool。

如果两个系统都是 PostgreSQL,那么在 psql 中唯一可能导致这种情况的是不同的表设计。查看\d tablename并检查是否将一个设置为使用 bool,而另一个设置为使用位或整数类型。

于 2013-04-30T01:49:00.540 回答