2013-07-23 1 views
0

Я хочу, чтобы создать таблицу с идентификатором и UNIQUE поле TEXT например с помощью:Как создать строку запроса с использованием класса SQLiteOpenHelper?

@Override 
public void onCreate(SQLiteDatabase db) 
{ 
    String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_POSTS + "(" 
    + KEY_ID + " INTEGER PRIMARY KEY AUTO_INCREMENT," + KEY_URL + " TEXT UNIQUE NOT NULL"+")"; 
    db.execSQL(CREATE_CONTACTS_TABLE); 
} 

Но это не работает.

07-23 10:35:53.937: E/AndroidRuntime(19078): android.database.sqlite.SQLiteException: near "AUTO_INCREMENT": syntax error: CREATE TABLE posts(id INTEGER PRIMARY KEY AUTO_INCREMENT,url TEXT UNIQUE NOT NULL) 

Как это исправить?

ответ

1

Целочисленный первичный ключ в SQlite - это AutoIncrement по умолчанию, поэтому удалите Auto Increment. Вот документация SQLite FAQ

+0

Спасибо, но если я использую AUTOINCREMENT вместо AUTO_INCREMENT, это сработало. Я столкнулся с новой проблемой: Вставка значений в базу данных при вставке ошибок ... код ошибки: 19 - Произошел сбой. Может быть, только один первичный, а UNIQUE еще один столбец может существовать в таблице? – user2553773

0

Это будет работать, чтобы создать таблицу, я протестировал ее в своем приложении и отлично работал.

@Override 
public void onCreate(SQLiteDatabase db) 
{ 
    String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_POSTS + " (" 
    + KEY_ID + " INTEGER PRIMARY KEY, " + KEY_URL + " TEXT UNIQUE NOT NULL"+")"; 
    db.execSQL(CREATE_CONTACTS_TABLE); 
} 
+0

Спасибо. Это нормально, и, как сказал Пешал, автоинкремент по умолчанию. – user2553773

0

изменить AUTO_INCREMENT на автоинкремент.

+0

Спасибо. Но Ошибка при вставке значения: сбой невозможен. Что это может быть? – user2553773

+0

Мне нужно больше информации. – outcast

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

  • Нет связанных вопросов^_^