我有一个名为deliverysimp
的表,试图在其中插入一些数据。我知道这些列的数据类型只是关联性,而不是限制,但是我需要将下面的parcelid
列存储为TEXT
。
CREATE TABLE IF NOT EXISTS deliverysimp (parcelid TEXT, expected integer, primary key (parcelid))
我正在使用以下javascript将数据插入数据库:
context.executeSql("INSERT INTO deliverysimp(parcelid, expected) values(?,?)",
[
'' + delivery.parcelid,
delivery.expected
], function () { }, me.ErrorHandler);
您可以看到我尝试在包裹之前添加一个空白的
'' +
来尝试强制执行亲和力,但是如果没有,行为是相同的。即:如果我尝试存储宗地
33333333333322222222222222222222223
,则将其作为3.3333333333322223e+34
存储到数据库中,我需要将其作为文本/字符串表示形式。有什么想法可以让SQLite将此命名为
TEXT
吗? 最佳答案
我怀疑您已经有一个字符串,只是没有您期望的字符串。由于您拥有的数字不能用8字节整数表示,因此它将转换为实数,然后转换为字符串,即'3.3333333333322223e + 34'。因此,如果您希望该值为“ 33333333333322222222222222222222222223”,那么这就是您必须插入表中的内容。
要进行检查,请使用SELECT parcelid, TYPEOF(parcelid) FROM deliverysimp;
命令行工具执行sqlite3
并查看得到的内容。