我可以在SQLite中使用负tinyint吗?

时间:2009-10-02 13:20:47

标签: sql mysql sqlite types

我需要创建一个表(在SQLite中),其中包含一个包含“-1”或“+1”的列。为了节省内存,最好不要使用“int”作为列的类型。所以,我想到了“smallint”和“tinyint”。但是smallint不是那么小(从-32,768到32,767)而tinyint只能是正数(从0到255)。还有其他选择或我在这两个选项之间做出选择吗?

提前谢谢。

4 个答案:

答案 0 :(得分:6)

SQLite 3仅提供INTEGER数据类型......

  

[...]已签名   整数,存储在1,2,3,4,6或8中   字节取决于的大小   价值。

来源:http://www.sqlite.org/datatype3.html

答案 1 :(得分:5)

布尔值可以通过应用程序中的微小处理来完成工作,将布尔值映射到-1或+1。

答案 2 :(得分:3)

如果你的字段中只有两个值,为什么不使用bit / boolean?

答案 3 :(得分:0)

我建议你像其他答案一样建议并使用0/1或者一点代替,但如果你真的需要这样做,你可以在你的代码中,将值从无符号字节转换为char,然后到一个有符号的字节?如果可以,那么然后1(00000001)强制转换为1,而255(11111111)强制转换为-1