如何在不转换的情况下在SQLite数据库中插入字符串?

发布于 2024-09-15 10:14:17 字数 154 浏览 8 评论 0原文

表: 创建表配置(键字符串,值字符串,主键(键));

这是我尝试过的: 插入配置(Key,Value)值(42,cast('0042'作为文本));

这是转储: 插入“配置”值(42,42);

我想要什么: 插入“配置”值(42,'0042');

The table:
CREATE TABLE configuration(Key STRING, Value STRING, PRIMARY KEY (Key) );

Here is what I tried:
insert into configuration(Key,Value) values(42,cast('0042' as text));

Here is the dump:
INSERT INTO "configuration" VALUES(42,42);

What I wanted:
INSERT INTO "configuration" VALUES(42,'0042');

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

预谋 2024-09-22 10:14:17

如果您使用以下命令创建表:(

CREATE TABLE configuration(Key STRING, Value TEXT, PRIMARY KEY (Key) );

使用 SQLite 执行此操作不会造成存储损失),那么即使您使用最简单的 INSERT 形式,您也会保留前导零。这是因为 STRING 不是真正的 SQLite 类型,因此 <代码>NUMERIC亲和力

If you create the table with:

CREATE TABLE configuration(Key STRING, Value TEXT, PRIMARY KEY (Key) );

(there is no storage penalty for doing this with SQLite) then you'll get the leading zeroes preserved, even if you use the very simplest form of INSERT. This is because STRING is not a real SQLite type, and so has NUMERIC affinity.

戴着白色围巾的女孩 2024-09-22 10:14:17

我不确定你在尝试什么,但本质上应该是:

INSERT INTO configuration VALUES(42,'0042');

I'm not sure what you are trying, but essentially, it should be:

INSERT INTO configuration VALUES(42,'0042');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文