我创建了一个表 MYTABLE
CREATE TABLE "MYTABLE" (
"surname" VARCHAR,
"name" VARCHAR,
"id" INTEGER PRIMARY KEY NOT NULL ,
"flag" BOOL);
Run Code Online (Sandbox Code Playgroud)
当我插入一条记录时:
INSERT INTO "MYTABLE" VALUES ("Super","Mario","94", true);
Run Code Online (Sandbox Code Playgroud)
我收到一条错误消息,即no such column: true. 如果我使用这个:
INSERT INTO "MYTABLE" VALUES ("Super","Mario","94", "true");
Run Code Online (Sandbox Code Playgroud)
我没有收到任何错误,但是当我阅读该记录时,rs.getBoolean("flag")我得到了错误。
最后,我试过这个
INSERT INTO "MYTABLE" VALUES ("Super","Mario","94", 1);
Run Code Online (Sandbox Code Playgroud)
的rs.getBoolean("flag")回报true。所以这里的教训是 Sqlite 中的布尔值插入 0/1 ?
是的,BOOL 类型在许多数据库中与 BIT 是同义的,包括 SQLite 和 SQL Server。其他数据库(例如 Oracle)甚至没有布尔类型,并且按惯例使用 NUMBER(1) 字段来存储布尔值。
| 归档时间: |
|
| 查看次数: |
8331 次 |
| 最近记录: |