2016-01-24 2 views
-1

Я пишу тесты для своей базы данных, и сейчас приведенная ниже таблица не строится, и тест не работает с этой строкой SQL: «CREATE TABLE location (_id INTEGER PRIMARY KEY, location_setting TEXT UNIQUE NOT NULL, city_name ТЕКСТ NOT NULL, coord_lat REAL NOT NULL coord_long REAL NOT NULL); ". Я довольно уверен, что есть некоторая синтаксическая ошибка, но я новичок в базах данных в android и честно нуждаюсь в помощи.Ошибка создания таблицы SQLite для 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 " + 
       ");"; 
    } 

Спасибо за помощь.

ответ

-1

неTEXT с UNIQUE.

За дополнительной информацией: make text column as unique key.

Вы можете попробовать VARCHAR или подумать о другой реализации, чтобы достичь своей цели.

Bye

+0

Он просит SQLite не MySQL. В SQLite вы можете создавать определения столбцов TEXT + UNIQUE. –

3

Вам нужно добавить «» после каждого столбца, как это просто оставить последний.

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" + 
      ");"; 
+1

yup OP пропустил запятую перед последним полем :) good catch – Yazan

Смежные вопросы