将布尔值插入 sqlite table

Insert boolean value into sqlite table

我创建了一个tableMYTABLE

CREATE TABLE "MYTABLE" (
       "surname" VARCHAR,
       "name" VARCHAR,
       "id" INTEGER PRIMARY KEY  NOT NULL ,
       "flag" BOOL);

当我插入一条记录时:

INSERT INTO "MYTABLE" VALUES ("Super","Mario","94", true);

我收到一条错误消息,即 no such column: true。如果我使用这个:

INSERT INTO "MYTABLE" VALUES ("Super","Mario","94", "true");

我没有收到任何错误,但是当我用 rs.getBoolean("flag") 读取该记录时,我得到了错误。

最后,我尝试了这个

INSERT INTO "MYTABLE" VALUES ("Super","Mario","94", 1); 

rs.getBoolean("flag") returns true。所以这里的教训是,Sqlite中的布尔值是用0/1插入的?

SQLite 没有单独的布尔存储 class.Boolean 值存储为整数 0 和 1。 source

是的,在很多数据库中,BOOL 类型是 BIT 的同义词,包括 SQLite 和 SQL Server。其他数据库,如 Oracle,甚至没有布尔类型,并且 NUMBER(1) 字段用于按照约定存储布尔值。