Синтаксическая ошибка при создании таблицы в Android - PullRequest
2 голосов
/ 05 августа 2011
private static final String DATABASE_TABLE_TRANS = "Transaction";   
private static final String DATABASE_CREATE_TRANS = 
       "create table " + DATABASE_TABLE_TRANS + "(_id integer primary key autoincrement, "
       + "Amount text not null, " + "Name_of_bank text unique not null, " 
       + "Trans_Time text not null);";

 public void onCreate(SQLiteDatabase db) 
        {
            System.out.println("oncreate of dbbbbbbbbbbbbbbbbb");
            db.execSQL(DATABASE_CREATE_TRANS);
        }

во время работы я получаю ошибку:

 08-05 14:40:15.187: ERROR/AndroidRuntime(5362):
 android.database.sqlite.SQLiteException: near "Transaction": syntax
 error: create table Transaction(_id integer primary key autoincrement,
 Amount text not null, Name_of_bank text unique not null, Trans_Time
 text not null);

Что я сделал не так?

Ответы [ 2 ]

5 голосов
/ 05 августа 2011

Я думаю, что «Транзакция» - это ключевое слово, которое вам запрещено использовать.Попробуйте изменить имя на другое.

1 голос
/ 05 августа 2011

Необходимо соблюдать осторожность при использовании ключевых слов SQLite в качестве имен идентификаторов. Как правило большого пальца, вы должны стараться избегать использования любых ключевых слов из языка SQL в качестве идентификаторов, хотя, если вы действительно хотите это сделать, их можно использовать при условии, что они заключены в квадратных скобках. Например, следующее утверждение будет работать просто отлично, но это не должно имитироваться в реальной базе данных sqlite> CREATE TABLE [TABLE] ( ...> [ВЫБРАТЬ], ...> [INTEGER] INTEGER, ...> [ОТ], ...> [ТАБЛИЦА] ...>);

здесь ссылка на ключевые слова sqlite

http://www.sqlite.org/lang_keywords.html

и здесь вы можете найти соглашения об именах для баз данных

http://www.pearsonhighered.com/assets/hip/us/hip_us_pearsonhighered/samplechapter/067232685X.pdf

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...