【问题标题】:SQLITE Custom DataTypes?SQLITE 自定义数据类型?
【发布时间】:2012-01-15 01:50:15
【问题描述】:

我对 SQLITE 相当陌生,我注意到只有 4 种数据类型,但我在网上看到人们放入自己的数据类型的示例。我真的不明白这一点,想知道是否有人可以向我解释。例如,我看到一个包含日期的列,并且给出的数据类型是不存在的时间戳。它默认是什么?自己制作时是否默认为文本?

【问题讨论】:

    标签: sql types sqlite


    【解决方案1】:

    sqlite3 使用动态类型系统。只有五个存储类: NULL、整数、实数、文本和 blob。 (来源:Datatypes In SQLite Version 3。)

    并且,引用该页面:

    SQLite 版本 3 数据库中的任何列,除 INTEGER PRIMARY KEY 列外,都可用于存储任何存储类的值。

    除了integer primary key 异常,SQLite 根本不强制类型。这意味着您在 create table 中输入的类型名称纯粹是为了提供信息。

    create table mytab (a apples, b bananas);
    

    是一个有效的create table 语句。您可以在两列中插入时间戳、文本、blob(不是说您应该,但可以)。

    查看类型系统的链接参考文档以获取更多信息。

    sqlite> create table mytab (a apples, b bananas);
    sqlite> insert into mytab values (CURRENT_TIME, NULL);
    sqlite> insert into mytab values ('hello', 3.14159);
    sqlite> select * from mytab;
    14:59:18|
    hello|3.14159
    

    直接回答您的问题:没有默认值。存储类型与存储在数据库中的每个值相关联,而不是与表的列相关联。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-21
      • 2017-02-02
      • 1970-01-01
      • 2011-06-17
      • 1970-01-01
      • 2011-12-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多