【问题标题】:How to insert a string in SQLite database without conversion?如何在不转换的情况下在 SQLite 数据库中插入字符串?
【发布时间】: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');

【问题讨论】:

    标签: string sqlite behavior


    【解决方案1】:

    如果您使用以下方式创建表:

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

    (使用 SQLite 执行此操作没有存储损失)然后您将保留前导零,即使您使用最简单的 INSERT 形式。这是因为STRING is not a real SQLite type, and so has NUMERIC affinity

    【讨论】:

    • 不适用于 SQLite。 STRING 将被解释为 TEXTVARCHARVARCHAR2POTATO 也是如此。 (我不骗你)。
    • @MPelletier:我知道,但我也知道当我使用TEXT 时它可以工作,而当我使用STRING 时它不会。我只是测试了一下。
    • @MPelletier:哈。 记录 STRING 是 NUMERIC(参见编辑链接)。这真是一个令人讨厌的问题!
    • 不错!我没有意识到这一点。
    • 谢谢,这正是我想要的!
    【解决方案2】:

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

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

    【讨论】:

    • 对不起,配置不应该在引号之间。
    • 这没什么区别。 (引号很好;这是命名实体的 SQL 语法,例如不能“裸”使用名称的列或字段。)真的。我只是将它输入到交互式会话中并得到错误的行为......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-28
    • 1970-01-01
    • 2017-02-18
    • 2012-06-25
    • 1970-01-01
    • 2011-02-04
    相关资源
    最近更新 更多