有没有办法在SQLite中存储一个(唯一的)数据元素?

pro*_*eek 15 database sqlite

我需要使用SQLite数据库文件作为存储信息的文件,我想将该文件的版本存储在SQLite数据库文件中.

我怎样才能做到这一点?我的意思是,如何在SQLite中存储唯一(仅一个)数据?我不想通过为此创建表来存储信息,因为版本信息只是一个数字.

Mar*_*off 12

毕竟,对于SQLite来说,这一个嵌入式数据库,使用单个表来保存这样的唯一值没有任何问题.

sqlite> CREATE TABLE AppVersion (version);
sqlite> INSERT INTO AppVersion VALUES('1.0');
sqlite> SELECT * FROM AppVersion;
1.0
sqlite> UPDATE AppVersion SET version='1.1';
sqlite> SELECT * FROM AppVersion;
1.1
Run Code Online (Sandbox Code Playgroud)

这是一个嵌入式数据库.您希望在使用它时获得良好的性能,而不是完美的性能.一个额外的表(只持有单排过)不应该使任何以任何合理的应用差异.

  • 我怀疑OP的关注是关于*表现* - 他从未提出这样的建议.更简单的是,使用表来存储这些信息在语义上是错误的,在看到应用程序之前可能会误导某人查看模式("那么,我们存储了我们在此表中发布过的所有版本?"不,只是其中之一."),(对我来说)丑陋.有一种方法来显式存储*持久变量*,而不是*表行*,将更具表现力.但它不存在,所以我们必须使用我们拥有的工具. (7认同)
  • @MarkAmery 我想我还不清楚。我的意思是这样的: `CREATE TABLE AppVersion(version TEXT NOT NULL, enforcer INT DEFAULT 0 NOT NULL CHECK(enforcer == 0), UNIQUE (enforcer));` 然后,如果您尝试执行以下两次操作,则第二次尝试将失败:`INSERT INTO AppVersion(版本)VALUES(1);` (2认同)