为什么我们在Firebird中没有布尔数据类型?

时间:2011-02-15 17:34:16

标签: boolean firebird

除非我完全错误,否则Firebird中甚至没有SQL Server的布尔数据类型(1位)。为什么?我认为布尔在各种情况下都很有用......而且空间消耗很低......

3 个答案:

答案 0 :(得分:13)

答案 1 :(得分:5)

你必须为它创建域

CREATE DOMAIN D_BOOLEAN
 AS smallint
 CHECK (VALUE IS NULL OR VALUE IN (0, 1));

然后

alter table sometable add somefield d_boolean

在我们的DB上完美运行:)

答案 2 :(得分:-3)

Firebird以bit数据类型的形式具有布尔值。

http://www.firebirdsql.org/manual/migration-mssql-data-types.html

FTA:

转换位数据类型

位数据类型用于保存单个布尔值0或1.MS SQL不支持为此字段分配NULL。 InterBase可以使用INTEGER或CHAR(1)数据类型来模拟它。

可以使用域限制可接受的值。有关Firebird域的更多信息,请参阅数据定义文档。