如果我尝试将数字作为字符串插入,则数字以" .0"结尾。 SQLite放弃了这一部分。
例如,如果我在sqlite3中调用此代码,我得到1作为答案,而不是1.0。
CREATE TABLE test (val STRING NOT NULL);
INSERT INTO test (val) VALUES ('1.0');
SELECT * FROM test;
如果那时我在SQLiteman(一个可视化客户端)中打开数据库,它仍然是1。
它破坏了我的代码,所以现在我在写入数据库之前使用替换_但它是一个紧缩,我不能确定这种行为在将来不会破坏别的东西。
我可以以某种方式禁用此行为吗?为什么它以这种奇怪的方式工作?
我的sqlite3版本是3.20.1
答案 0 :(得分:1)
STRING
在SQLite中不是一个有意义的数据类型。您要找的是TEXT
。请参阅Datatypes in SQLite Version 3。
sqlite> CREATE TABLE test (val TEXT NOT NULL);
sqlite> INSERT INTO test (val) VALUES ('1.0');
sqlite> SELECT * FROM test;
1.0