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

onCreate时无法使用SQLite Default

  •  1
  • Nick  · 技术社区  · 10 年前

    我对Android SQLite数据库有问题。 我想在使用onCreate()创建数据库时设置一些默认值。 数据库已创建,但表为空。

    //Datenbank anlegen
    private static final String CREATETABLE_SETTINGS =
            "CREATE TABLE " + TABLE_SETTINGS + " (\n" +
                    "id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,\n" +
                    "level TEXT DEFAULT 'hard',\n" +
                    "design TEXT DEFAULT 'dark',\n" +
                    "sound INTEGER DEFAULT '1',\n" +
                    "music INTEGER DEFAULT '1',\n" +
                    "vibration INTEGER DEFAULT '1',\n" +
                    "control INTEGER DEFAULT '1');" ;
    

    我不知道为什么默认值不起作用。

    谢谢你的每一个回答,请原谅我的语言不好。

    1 回复  |  直到 10 年前
        1
  •  2
  •   laalto    10 年前

    DEFAULT 只有在插入或更新行时没有为列提供值或为列提供空值时,才会应用列定义。您发布的代码没有插入任何行。

    要插入具有默认值的行,请考虑

    "INSERT INTO " + TABLE_SETTINGS + "(id) VALUES(NULL)"
    

    (插入时需要至少指定一列。)