我多次检查每件事,但仍然收到此消息

android.database.sqlite.SQLiteException: near ")": syntax error (code 1): , while compiling: CREATE TABLE location (_id INTEGER PRIMARY KEY AUTOINCREMENT, location_setting TEXT UNIQUE NOT NULL, city_name TEXT NOT NULL, coord_lat REAL NOT NULL, coord_long REAL NOT NULL,  );




final String SQL_CREATE_WEATHER_TABLE = "CREATE TABLE " + WeatherContract.WeatherEntry.TABLE_NAME + " (" +

            WeatherContract.WeatherEntry._ID + " INTEGER PRIMARY KEY AUTOINCREMENT," +

            // the ID of the location entry associated with this weather data
            WeatherContract.WeatherEntry.COLUMN_LOC_KEY + " INTEGER NOT NULL, " +
            WeatherContract.WeatherEntry.COLUMN_DATE + " INTEGER NOT NULL, " +
            WeatherContract.WeatherEntry.COLUMN_SHORT_DESC + " TEXT NOT NULL, " +
            WeatherContract.WeatherEntry.COLUMN_WEATHER_ID + " INTEGER NOT NULL," +

            WeatherContract.WeatherEntry.COLUMN_MIN_TEMP + " REAL NOT NULL, " +
            WeatherContract.WeatherEntry.COLUMN_MAX_TEMP + " REAL NOT NULL, " +

            WeatherContract.WeatherEntry.COLUMN_HUMIDITY + " REAL NOT NULL, " +
            WeatherContract.WeatherEntry.COLUMN_PRESSURE + " REAL NOT NULL, " +
            WeatherContract.WeatherEntry.COLUMN_WIND_SPEED + " REAL NOT NULL, " +
            WeatherContract.WeatherEntry.COLUMN_DEGREES + " REAL NOT NULL, " +

            // Set up the location column as a foreign key to location table.
            " FOREIGN KEY (" + WeatherContract.WeatherEntry.COLUMN_LOC_KEY + ") REFERENCES " +
            WeatherContract.LocationEntry.TABLE_NAME + " (" + WeatherContract.LocationEntry._ID + "), " +

            // To assure the application have just one weather entry per day
            // per location, it's created a UNIQUE constraint with REPLACE strategy
            " UNIQUE (" + WeatherContract.WeatherEntry.COLUMN_DATE + ", " +
            WeatherContract.WeatherEntry.COLUMN_LOC_KEY + ") ON CONFLICT REPLACE );";

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


    sqLiteDatabase.execSQL(SQL_CREATE_LOCATION_TABLE);


    sqLiteDatabase.execSQL(SQL_CREATE_WEATHER_TABLE);

最佳答案

错字,请检查最后一行

WeatherContract.LocationEntry.COLUMN_COORD_LONG+ " REAL NOT NULL, "+" );";


,之后从结尾删除NOT NULL,它应该像

WeatherContract.LocationEntry.COLUMN_COORD_LONG+ " REAL NOT NULL "+" );";

关于android - android.database.sqlite.SQLiteException:“”附近):语法错误(代码1),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35239087/

10-09 03:15