2015-10-13 3 views
-1

Я пытаюсь создать несколько таблиц для моего приложения для Android, но у меня возникают проблемы с созданием таблиц. У меня есть один dDBAdapter, который держит все, что я создаю. Первая таблица создает штраф, но я не понимаю, почему она не работает на втором.Android SQLite Создание ошибки таблицы

Любая помощь будет большим, но я уверен, что я чуть больше смотрел что-то маленькое

Таблица Создать код

private static final String CREATE_TABLE_RECIPES = "create table if not exists recipes(" + 
     "_id INTEGER PRIMARY KEY AUTOINCREMENT, " + 
     "name VARCHAR," + 
     "ingredents TEXT," + 
     "instructions TEXT," + 
     "description TEXT," + 
     "time TIME)"; 

private static final String CREATE_TABLE_SHOPPING_LIST = "create table if not exists shopping_list(" + 
     "_id INTEGER PRIMARY KEY AUTOINCREMENT," + 
     "name TEXT," + 
     "quantity FLOAT)"; 

private static final String CREATE_TABLE_PUBLIC_DB = "create table if not exists public_db(" + 
     "_id INTEGER PRIMARY KEY AUTOINCREMENT," + 
     "name TEXT," + 
     "number INT)"; 

private static final String CREATE_TABLE_CURRENT_CONTENTS = "create table if not exists current_contents(" + 
     "_id INTEGER PRIMARY KEY AUTOINCREMENT," + 
     "name TEXT," + 
     "quantity FLOAT," + 
     "expiry DATE)"; 

Ошибка

18:41:35.778 27198-27198/? E/SQLiteLog: (1) near "AUTOINCREMENTname": syntax error 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime: FATAL EXCEPTION: main 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime: Process: app.rory.menu, PID: 27198 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{app.rory.menu/app.rory.pocket_chef.MyActivity}: android.database.sqlite.SQLiteException: near "AUTOINCREMENTname": syntax error (code 1): , while compiling: create table if not exists shopping_list(_id INTEGER PRIMARY KEY AUTOINCREMENTname TEXT,quantity FLOAT) 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime:  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime:  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime:  at android.app.ActivityThread.access$800(ActivityThread.java:151) 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime:  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime:  at android.os.Handler.dispatchMessage(Handler.java:102) 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime:  at android.os.Looper.loop(Looper.java:135) 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime:  at android.app.ActivityThread.main(ActivityThread.java:5254) 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime:  at java.lang.reflect.Method.invoke(Native Method) 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime:  at java.lang.reflect.Method.invoke(Method.java:372) 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime: Caused by: android.database.sqlite.SQLiteException: near "AUTOINCREMENTname": syntax error (code 1): , while compiling: create table if not exists shopping_list(_id INTEGER PRIMARY KEY AUTOINCREMENTname TEXT,quantity FLOAT) 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime:  at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime:  at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889) 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime:  at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500) 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime:  at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime:  at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58) 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime:  at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31) 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime:  at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1674) 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime:  at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1605) 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime:  at app.rory.pocket_chef.Adapters.DBAdapter$DatabaseHelper.onCreate(DBAdapter.java:68) 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime:  at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:251) 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime:  at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:163) 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime:  at app.rory.pocket_chef.Adapters.DBAdapter.open(DBAdapter.java:89) 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime:  at app.rory.pocket_chef.Fragments.recipes_Fragment.onActivityCreated(recipes_Fragment.java:42) 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime:  at android.app.Fragment.performActivityCreated(Fragment.java:2061) 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime:  at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:912) 
10-13 18:41:35.787 27198-27198/? E/AndroidRuntime:  at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067) 
10-13 18 
+1

удалить и переустановить приложение, после того, как вы изменили код. –

+0

Я уже пробовал это, и я все равно получаю ту же ошибку – Hayes121

+1

Нет. Теперь вы добавили запятую - это правильно. Поэтому вы должны удалить и переустановить приложение. –

ответ

0

вы просто удалить AUTOINCREMENT из всего вашего запроса sql.

В SQLite столбец, объявленный INTEGER PRIMARY KEY, будет автоинкремент сам по себе.

проверка HERE