我多次检查每件事,但仍然收到此消息
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/