代码之家  ›  专栏  ›  技术社区  ›  Manish

Sqlite列被分配了错误的数据类型值

  •  1
  • Manish  · 技术社区  · 5 年前

    我在sqlite中有一个表,其模式如下:

    CREATE TABLE message(ITEM_ID TEXT, COUNTRY_ID TEXT, CODES INTEGER);
    

    即使代码是整数,我仍然可以像这样将字符串数据插入表中:

    insert into message values(124,'5','R')
    

    我以为sqlite会出错。它不应该返回错误吗?

    谢谢

    0 回复  |  直到 5 年前
        1
  •  1
  •   Joachim Isaksson    5 年前

    SQLite不会以这种方式限制类型。这个 SQLite FAQ 有这样的说法;

    SQLite使用动态类型。它不强制执行数据类型约束。任何类型的数据(通常)都可以插入到任何列中。可以将任意长度的字符串放入整数列、布尔列中的浮点数或字符列中的日期。在CREATE TABLE命令中指定给列的数据类型不限制可以将哪些数据放入该列。

    这与(大多数)其他SQL数据库不同,正如您可能已经注意到的,在测试数据库代码时需要格外小心。

    推荐文章