我创建了一个表MYTABLE
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")
返回true
。所以这里的教训是Sqlite中的布尔值插入0/1?
答案 0 :(得分:2)
SQLite没有单独的布尔存储类。布尔值存储为整数0和1。
答案 1 :(得分:0)
是的,BOOL类型与许多数据库中的BIT同义,包括SQLite和SQL Server。其他数据库,如Oracle,甚至没有布尔类型,NUMBER(1)字段用于按惯例存储布尔值。