【问题标题】:Syntax error when creating table in SQLite在 SQLite 中创建表时出现语法错误
【发布时间】:2015-08-12 16:06:25
【问题描述】:

当我的应用尝试创建 sqlite 表时,我收到语法错误。

这是创建表的代码:

@Override
public void onCreate(SQLiteDatabase db) {
    String SQL = pictureTable();
    db.execSQL(SQL);
}

private String pictureTable() {
    return "CREATE TABLE geophoto_db_pictures ( picid integer,"
            + "name character varying(50),"
            + "city character varying(20) NOT NULL DEFAULT 'Unknown',"
            + "zipcode character varying(20) NOT NULL DEFAULT 'Unknown',"
            + "country character varying(20) NOT NULL DEFAULT 'Unknown',"
            + "picdate datetime NOT NULL DEFAULT DATETIME('now'),"
            + "tags character varying(200)," + "image BLOB NOT NULL,"
            + "uploaded integer NOT NULL DEFAULT 0, PRIMARY KEY (picid))";
}

错误是: android.database.sqlite.SQLiteException:靠近“(”:语法错误(代码1)

非常感谢任何帮助!

【问题讨论】:

  • 尝试“改变字符()”而不是“改变字符()”
  • 错误在更改为“可变字符”后保持不变:(
  • 您的 picdate 默认值设置错误。 [sqlite数据库默认时间值'now'][1][1]:stackoverflow.com/questions/200309/…

标签: android sqlite


【解决方案1】:

默认值不能使用函数调用。

但是,您可以使用 `CURRENT_TIMESTAMP' 变量:

CREATE TABLE
    ...
    picdate datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
    ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-26
    • 2022-01-22
    • 1970-01-01
    • 2014-03-21
    • 2018-06-14
    • 1970-01-01
    相关资源
    最近更新 更多