2017-02-11 5 views
0

Я внесла некоторые изменения в свою базу данных, и с тех пор приложение запускается каждый раз, когда я запускаю его. Мой код:База данных SQL «create Tabe»

public static final String TABLE_TRANSACTION = "transaction"; 
public static final String COLUMN_TRANSACTION_ID = "TRANSACTION_ID"; 
public static final String COLUMN_TRANSACTION_DATE_CREATED = "TRANSACTION_DATE_CREATED"; 
public static final String COLUMN_TRANSACTION_ISOVERVIEW = "TRANSACTION_ISOVERVIEW"; 
public static final String COLUMN_TRANSACTION_NAME = "TRANSACTION_NAME"; 
public static final String COLUMN_TRANSACTION_DESCRIPTION = "TRANSACTION_DESCRIPTION"; 
public static final String COLUMN_TRANSACTION_TYPE = "TRANSACTION_TYPE"; 
public static final String COLUMN_TRANSACTION_AMOUNT = "TRANSACTION_AMOUNT"; 
public static final String COLUMN_TRANSACTION_REPEAT_CYCLE = "TRANSACTION_REPEAT_CYCLE"; 
public static final String COLUMN_TRANSACTION_REPEAT_DAY = "TRANSACTION_REPEAT_DAY"; 
public static final String COLUMN_TRANSACTION_REPEAT_ACTIVE = "TRANSACTION_REPEAT_ACTIVE"; 

private static final String DATABASE_CREATE_TRANSACTION = "create table " 
     + TABLE_TRANSACTION + " (" 
     + COLUMN_TRANSACTION_ID + " integer primary key autoincrement, " 
     + COLUMN_TRANSACTION_DATE_CREATED + " VARCHAR(16), " 
     + COLUMN_TRANSACTION_ISOVERVIEW + " VARCHAR(10), " 
     + COLUMN_TRANSACTION_NAME + " VARCHAR(4096), " 
     + COLUMN_TRANSACTION_DESCRIPTION + " VARCHAR(4096), " 
     + COLUMN_TRANSACTION_TYPE + " INTEGER, " 
     + COLUMN_TRANSACTION_AMOUNT + " FLOAT, " 
     + COLUMN_TRANSACTION_REPEAT_CYCLE + " VARCHAR(20), " 
     + COLUMN_TRANSACTION_REPEAT_DAY + " VARCHAR(20), " 
     + COLUMN_TRANSACTION_REPEAT_ACTIVE + " VARCHAR(10));"; 

@Override 
public void onCreate(SQLiteDatabase database) { 
    database.execSQL(DATABASE_CREATE_TRANSACTION); 
} 

И я получаю эту ошибку:

Caused by: android.database.sqlite.SQLiteException: near "transaction": syntax error (code 1): , while compiling: create table transaction (TRANSACTION_ID integer primary key autoincrement, TRANSACTION_DATE_CREATED VARCHAR(16), TRANSACTION_ISOVERVIEW VARCHAR(10), TRANSACTION_NAME VARCHAR(4096), TRANSACTION_DESCRIPTION VARCHAR(4096), TRANSACTION_TYPE INTEGER, TRANSACTION_AMOUNT FLOAT, TRANSACTION_REPEAT_CYCLE VARCHAR(20), TRANSACTION_REPEAT_DAY VARCHAR(20), TRANSACTION_REPEAT_ACTIVE VARCHAR(10)); 

Можете ли вы сказать, где ошибка? Thx для справки

+5

'TRANSACTION' является зарезервированным ключевым словом в SQLite: https://www.sqlite.org/lang_keywords.html –

ответ

2

TRANSACTION является reserved keyword, который не может использоваться в качестве имен таблиц, индексов, столбцов, баз данных, пользовательских функций, сопоставлений, виртуальных табличных модулей или любого другого именованного объекта ». Вам нужно будет назвать свою таблицу чем-то еще.

+0

Ok Спасибо, с первых попыток это сработало. Я изменил его, и теперь он работает. – schisskiss