2016-02-01 3 views
0

Я пытаюсь выполнить это заявление в onUpgrade методе помощнику базы данных, но я получаю сообщение об ошибке:SQLite: Ошибка синтаксиса в CREATE TABLE заявление

database.execSQL("CREATE TABLE VEHICLE_HOURS(ID INTEGER PRIMARY KEY AUTOINCREMENT, " + 
      "MINUTES INTEGER, VEHICLE VARCHAR(255), ORDER INTEGER);"); 

ОШИБКА

Caused by: android.database.sqlite.SQLiteException: near "ORDER": syntax error (code 1): , while compiling: CREATE TABLE VEHICLE_HOURS(ID INTEGER PRIMARY KEY AUTOINCREMENT, MINUTES INTEGER, VEHICLE VARCHAR(255), ORDER INTEGER);

Благодарю.

+0

'order' - зарезервированное слово в SQL. Даже если это разрешено, вы не должны предъявлять иск за имя столбца. –

+0

Заказ - это зарезервированное слово. «Приказ», помнишь? –

+0

Бог ... это правда. Я знал, что это вздор .. Спасибо, ребята –

ответ

2

ORDER является зарезервированным словом в SQL. Конечно, вы можете подавить эту ошибку, приняв имя в кавычки, например:

database.execSQL("CREATE TABLE VEHICLE_HOURS(ID INTEGER PRIMARY KEY AUTOINCREMENT, " + 
     "MINUTES INTEGER, VEHICLE VARCHAR(255), \"ORDER\" INTEGER);"); 

, но лучше просто выбрать другое имя столбца, то никто (в том числе и вашего будущего себя) не будут ненавидеть вас, сохраняя этот код.

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