【问题标题】:Does it matter if i write "INTEGER" or "int" in sql command inside java?[sqlite]我在java中的sql命令中写“INTEGER”还是“int”有关系吗?[sqlite]
【发布时间】:2015-08-28 04:39:44
【问题描述】:

当我执行sql命令时,即在java代码中创建表时,我是否写有关系:

db.execSQL("create table mytable ("
                    + "scores int, "
                    + ");");
        }

或者这个:

db.execSQL("create table mytable ("
                        + "scores INTEGER,"
                        + ");");
            }

或者两者都是一样的,只是语法不同?

【问题讨论】:

  • 哪个 sqlite 版本?
  • 相关:(SQLite版本很重要!)stackoverflow.com/questions/20289410/…
  • 它们都产生具有 INTEGER 亲和力的列。事实上,任何包含字符串 "int" 的东西都可以,包括 SQL 中通常不用作列类型的东西,例如 "printer" 或 "tint edwindows”(不,这不是玩笑)
  • @Karakuri:更令人困惑的是,列类型“floating point”具有整数亲和力,因为“int” in “point” 优先于 “float”。

标签: java android sql sqlite


【解决方案1】:

Sqlite3 文档 says 如果您使用 INT,则该列具有“产生的亲和力”:INTEGER。来自 CREATE TABLE 语句或 CAST 表达式的类型名称 INT、INTEGER、TINYINT、SMALLINT、MEDIUMINT、BIGINT、UNSIGNED BIG INT、INT2、INT8:赋予列的 INTEGER 亲和性。

For Sqlite2 see this answer

【讨论】:

  • 这个答案比我的更详细,尽管它给出了我在下面的评论中给出的相同链接。我会接受的
  • 请注意,作为 ROWID 别名的列(即,not 声明为 WITHOUT ROWID 的表中的 INTEGER PRIMARY KEY)是必需的 包含整数,而不仅仅是具有整数亲和力。这种特殊情况仅适用于类型名称恰好为INTEGER 的情况; INT PRIMARY KEY 只是一个具有唯一约束的普通整数关联列。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-21
  • 2016-09-27
  • 2020-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多