【问题标题】:Android SQLite table creation failure [closed]Android SQLite表创建失败[关闭]
【发布时间】:2016-01-24 20:42:20
【问题描述】:

我正在为我的数据库编写测试,现在下表没有构建,并且测试失败并构建了这个 SQL 命令:“ CREATE TABLE location (_id INTEGER PRIMARY KEY,location_setting TEXT UNIQUE NOT NULL, city_name TEXT NOT NULL, coord_lat REAL NOT NULL coord_long REAL NOT NULL);"。我很确定存在一些语法错误,但我是 android 数据库的新手,真的需要帮助。

表创建:

@Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        final String SQL_CREATE_LOCATION_TABLE = "CREATE TABLE " + LocationEntry.TABLE_NAME + " (" +
                LocationEntry._ID + " INTEGER PRIMARY KEY," +
                LocationEntry.COLUMN_LOCATION_SETTING + " TEXT UNIQUE NOT NULL, " +
                LocationEntry.COLUMN_CITY_NAME + " TEXT NOT NULL, " +
                LocationEntry.COLUMN_COORD_LAT + " REAL NOT NULL " +
                LocationEntry.COLUMN_COORD_LONG + " REAL NOT NULL " +
                " );";
    }

感谢您的帮助。

【问题讨论】:

    标签: android sqlite android-sqlite


    【解决方案1】:

    您需要在每一列之后添加“,”,这样就保留最后一列。

        final String SQL_CREATE_LOCATION_TABLE = "CREATE TABLE " + LocationEntry.TABLE_NAME + " (" +
                LocationEntry._ID + " INTEGER PRIMARY KEY," +
                LocationEntry.COLUMN_LOCATION_SETTING + " TEXT UNIQUE NOT NULL, " +
                LocationEntry.COLUMN_CITY_NAME + " TEXT NOT NULL, " +
                LocationEntry.COLUMN_COORD_LAT + " REAL NOT NULL, " +
                LocationEntry.COLUMN_COORD_LONG + " REAL NOT NULL" +
                " );";
    

    【讨论】:

    • 是的 OP 在最后一个字段之前错过了一个逗号 :) 很好
    【解决方案2】:

    您可以TEXTUNIQUE 一起使用。

    欲了解更多信息:make text column as unique key

    您可以尝试VARCHAR 或想一个不同的实现来实现您的目标。

    再见

    【讨论】:

    • 他要的是 SQLite 而不是 MySQL。在 SQLite 中,您可以创建 TEXT + UNIQUE 列定义。
    猜你喜欢
    • 1970-01-01
    • 2023-03-23
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 2012-12-27
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多