Я просмотрел несколько сайтов для любой полезной документации и подошел пустой. Блок-схемы с официального сайта также могут быть греческими, и примеры, которые я попытался сделать из других релевантных сообщений на этом сайте, вызвали у меня ошибки. Я пишу простое приложение для размещения пользовательского ввода в базе данных, однако мне нужна комбинация из двух столбцов , которая будет уникальной.. Из того, что я видел, это может быть достигнуто с помощью UNIQUE или PRIMARY KEY. Мне также нужен способ захвата ошибки Toast пользователю, что их вход неисправен. Я знаю, что я могу сделать это на стороне Java достаточно легко, но я бы предпочел не перебирать таблицу в каждой предлагаемой вставке.SQLite create table with UNIQUE комбинация столбцов
Это то, что я до сих пор:
db.execSQL("CREATE TABLE inventory (category TEXT, itemNum TEXT, quantity INTEGER, price REAL, image INTEGER, UNIQUE(category, itemNum) ON CONFLICT FAIL;");
таблица построена правильно, пока я не добавил UNIQUE ...
Который бросил: ERROR/SQLiteOpenHelper (1037): android.database.sqlite .SQLiteException: рядом ";": ошибка синтаксиса: CREATE TABLE инвентаризации (категория TEXT, itemNum TEXT, количество INTEGER, реальная цена, INTEGER изображения, скованность Unq UNIQUE (категория, itemNum) НА КОНФЛИКТ FAIL;
EDIT:
... fill ContentValues значения с пользовательским вводом.
try{
db.getWritableDatabase().insert(DatabaseHelper.TABLE_NAME, DatabaseHelper.CATEGORY, values);
fillItemNumbers(); // Updates screen
}
catch(SQLiteConstraintException e)
{
Toast
.makeText(this, "User error",Toast.LENGTH_LONG)
.show();
}
Facepalm! Теперь я возвращаю карту своего программиста и тихо отступаю, чтобы надуться в углу. – AnthonyW
Любые мысли по второму вопросу? Мне также нужен способ захвата ошибки Toast пользователю, что их вход неисправен – AnthonyW
Конечно, добавлен в мой ответ. –