【发布时间】:2010-08-21 05:10:33
【问题描述】:
表: CREATE TABLE 配置(Key STRING, Value STRING, PRIMARY KEY (Key) );
这是我尝试过的: 插入配置(Key,Value) 值(42,cast('0042' as text));
这里是转储: 插入“配置”值(42,42);
我想要的: 插入“配置”值(42,'0042');
【问题讨论】:
表: CREATE TABLE 配置(Key STRING, Value STRING, PRIMARY KEY (Key) );
这是我尝试过的: 插入配置(Key,Value) 值(42,cast('0042' as text));
这里是转储: 插入“配置”值(42,42);
我想要的: 插入“配置”值(42,'0042');
【问题讨论】:
如果您使用以下方式创建表:
CREATE TABLE configuration(Key STRING, Value TEXT, PRIMARY KEY (Key) );
(使用 SQLite 执行此操作没有存储损失)然后您将保留前导零,即使您使用最简单的 INSERT 形式。这是因为STRING is not a real SQLite type, and so has NUMERIC affinity。
【讨论】:
STRING 将被解释为 TEXT。 VARCHAR、VARCHAR2 和 POTATO 也是如此。 (我不骗你)。
TEXT 时它可以工作,而当我使用STRING 时它不会。我只是测试了一下。
我不确定你在尝试什么,但基本上,它应该是:
INSERT INTO configuration VALUES(42,'0042');
【讨论】: