我有一个名为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);
你可以看到我试图在包裹ID之前添加一个空白'' +
,试图强制亲和力,但行为是相同的;即:
如果我尝试存储包裹 ID 33333333333322222222222222222222223
则将其作为3.3333333333322223e+34
存储到数据库中,我需要将其作为文本/字符串表示形式。
任何想法如何让SQLite将其视为TEXT
?
我怀疑你已经有一个字符串,只是不是你期望的字符串。 由于您拥有的数字不能用 8 字节整数表示,因此它被转换为实数并转换为字符串,即 '3.3333333333322223e+34'。 因此,如果您希望值为"33333333333322222222222222222222223",那么这就是您必须插入到表中的内容。
要进行检查,请使用sqlite3
命令行工具执行SELECT parcelid, TYPEOF(parcelid) FROM deliverysimp;
,看看您得到了什么。